2011-07-05 14 views
15

Internet Explorer "const" anahtar sözcüğünü desteklemiyor. "Const" desteklenip desteklenmediğini kontrol eden bir shim kullanabilir miyim, değilse, var olarak yeniden tanımlayabilir miyim? Sanırım, objektifi kullanarak belki de sürekliliği zorlaştırırsa iyi olur. Friz, ama basit bir şemayla tamam olurdum.Internet Explorer için "const" olarak "const" olarak yeniden tanımlamak için Javascript shim

GÜNCELLEME: Bunun için bunları değiştirmeden "const" kullanan mevcut Javascript kitaplıklarını kullanabilmem için istiyorum. Açıkçası, bul/değiştir işe yarayacaktı, ama dağınık ve çok bakımlı değil.

+7

Eğer kodunuzun tanımlayıcının sabit olup olmadığını farketmezse (IE 'var' vermeyi önemsemiyorsanız), neden tüm tanımlayıcıları değişken yapmıyorsunuz? – lonesomeday

+7

@lonesomeday - aynı nedenden dolayı const icat edildi. Kodun varlığını vardan daha iyi belgelemektedir ve const mevcut olduğunda da bu niyetini uygular. Kullanılabilir olduğunda dil avantajlarını kullanmaya çalışıyor, sadece en düşük ortak paydaya program yapıyor. Bana mantıklı geldi. – jfriend00

+0

Bazı bilgiler eklendi - temel neden, diğer kişilerin bunları değiştirmeden yazdıkları kütüphaneleri kullanabilmem. –

cevap

1
Bir sunucu tarafı dolgusu yazabilirsiniz

yüzden .js dosya var ile değiştirilir herhangi const istendiğinde dosya tarayıcı akış edilir. (Uygun sözcük-break/whitespace detection required)

Sunucuda olduğunuz için tarayıcı yeteneklerini algılayamazsınız ve yalnızca IE için bunu yapmak için Kullanıcı Aracısı dizisine bağlı kalmak zorunda kalırsınız ya da javascript'in olması gerekir. istemci tarayıcıda çalışır, sunucuya const olmayan kod gerektirdiğini söyler.

Bir Java sunucu uygulaması tarafından desteklenen bir "userprefs.css" dosyasıyla, özellikle her kullanıcı için dosya oluşturup akışa benzer bir şey yapıyorum.

+0

Teşekkürler - Bu istemci tarafında özellik algılama özelliğini kullanarak ve desteklenmiyorsa const'ı tanımlamanın bir yolu olduğunu umuyorum. Ancak sunucu tarafı tek seçenek olabilir. –

+0

Bu fikri temel alarak, sayfalar dinamik olarak istekte bulunuyorsanız, özellik tespitini javascript'te yapabilir ve tüm sayfaları bir sonek ile yükleyebilirsiniz: ör. ? Const = false. Express (ve muhtemelen diğer sunucular) kullanarak, bu durumu kolayca kontrol edebilir ve ardından sayfayı geri göndermeden önce işlemlerinizi gerçekleştirebilirsiniz. – Griffork

1

Bunun için Modernleştiriciyi kullanırım ve Const. Otomatik bir bulma yaparak ve 'const' ile değiştirerek otomatik olarak IE için ikinci sürümü oluşturan bir Grunt JS eklentisi yazabilirsiniz.

İlgili konular