SORU
20 EYLÜL 2011, Salı


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.

enter image description here

Eğer IE uyumluluk modunu açıyorum şimdi

enter image description here

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.

enter image description here

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
30 EYLÜL 2011, Cuma


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

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • gamingbits

    gamingbits

    2 Mayıs 2006
  • Jesse Pimenta

    Jesse Piment

    5 EKİM 2011
  • StalkerJS

    StalkerJS

    15 HAZİRAN 2010