Stupefyingly IE 9 Javascript hata garip: belge Başlığı Değiştirme sonraki kod çalıştırmak için yapar
Bu hiç anlamıyorum. Burada ama IE 9 Her tarayıcıda çalışan bazı Javascript kodu. Flash film ExternalInterface
kullanarak denir ve dinamik olarak eğer filmin boyutu DAHİLİ olarak değişirse DOM filmi yeniden boyutlandırmak için tasarlanmıştır
function vResizeFlash(swfId, ht) {
document.getElementById(swfId).height = "100%";
document.getElementById('flashContainer').style.height = ht "px";
}
Ama sorun varsa belge değiştirdiğim takdirde çalışır.başlık:
function vResizeFlash(swfId, ht) {
// IE 9 won't run the rest of this function unless
// we go through the charade of changing the document title.
if (navigator.appName.indexOf("Microsoft") != -1) {
var docTitle = document.title.replace(/^(. ?)\s*$/,"$1");
document.title = docTitle " ";
}
// Well-coded browsers begin here
document.getElementById(swfId).height = "100%";
document.getElementById('flashContainer').style.height = ht "px";
}
Ben burada document.title
, sağ taraftan boşluk o Boşluk Tek bir karakter eklemek, herhangi bir trim. Aniden aşağıdaki satırları idam edilecek. Not: Bu sayfa üzerinde ExternalInterface
arayan başkaları da var ve hepsi de iyi, hatta IE 9, bir Flaş değil 9 sorun/IE.
Başlık bağımsız değişken (hata ayıklama hızlı bir test olarak), sadece işlevi çalıştırmak başlamıştı emin olmak için Haritayı değiştirecek olduğum için düzeltme üzerinde tökezledi. Ve aniden kodu çalıştı. - Çekeyim mi? İşe yaramıyor. % 100 tekrarlanabilir.
Herkes biliyornedenkesinlikle muhteşem, bu davranış gerçekleşir?
GÃœNCELLEME
@c69 soruyu gündeme getiriyor: "Belki de 9 ölü kod çıkarıcı?"
Bu konuyu bilmiyordum, gittim ve konu olarak some discussion this article Google'dan buldum başka bir yerde. Bilmiyorum yeterince ilgili değerlendirme nasıl bu etkiler iki satırlık bir Javascript işlevi, ancak, özellikle bu yana bir çizgileri var. doğal sayfa (her ne kadar geç kalınmış yükleme ile SwfObject kodu). Hala bir kod "denilen o nasıl anlamıyor çünkü gereksiz sayılır." kod satırları kaldırmak için doktoru için çok kötü bir hata olurdu Ve eğeryaptıbir satır belge için sahte bir değişiklik yapma, ekleme yapar hatları nasıl denir nasıl anlamak için başarısız.konu başlığı kod birden işlemek""? gerekli
GÃœNCELLEME 2
Bu bir şey ile ilgisi olabilir bulmacanın bir parçası 9 uyumluluk modu YANİ. Sayfa IE 9 standartları modu başlar.
Eğer IE uyumluluk modunu açıyorum şimdi
sorunu hemen yukarıda hack kullanmadan gider. Kapat ve sorun verir hack mevcut.
Ama denediğimde için basit bir test kullanarak aynı HTML (eksi bir kaç JSP tags) ve soyunmuş SWF sadece içerir boyutlandırma kod ve araçlar için test, her şey gayet iyi çalışıyor.budurumda, ancak, herhangi bir uyumluluk simgesi gösterilemez.
Tomcat 6.0.32 kullanıyoruz. Herhangi bir özel başlıklarını kullanıyoruz farkında değilim, ve meta etiketleri IE uyumluluk modu (test uygulamamı ya da ana uygulama veya) ile ilgili yok.
CEVAP
Bu herhangi bir dilde böyle bir şey ne zaman görsem bir hata var başka kod var çünkü. Senin de belirttiğin gibi basit sizin durumunuzda sorun üretmek değil. Sorun kaybolana kadar başka bir kod bir seferde birkaç satır kaldırmayı deneyin - son çıkarılan kod sorunu içermelidir.
Åžerefe
Nasıl bir dize olarak adını aldığımda ...
Nasıl Google hata ayıklama iletileri y...
Ne'iyi bir ÅŸekilde JavaScript Hat...
Eğer belge yükledi olmadığını tespit e...
Nasıl JavaScript ile tüm belge yüksekl...