Internet Explorer’da Flash Player Etkinleştirme Problemi

Bu konu hakkında daha önce de soru gelmişti ve çözümünü eski Manhem’de yazmıştık. Fakat bu sorunu yaşayanlar Google’da arama yaparak Manhem’e gelip, ilgili yazıyı bulamayınca yine soru mailleri gelmeye başladı. Evet son zamanların moda I.E. problemi: Flash animasyonu içeren bir sayfayı gezerken, animasyonun tıklamadan etkinleşmemesi/çalışmaması, tasarımcıları ve kullanıcıları çıldırtıyor olmasından söz ediyoruz. Gelen sorulara her defasında yeniden yazmak yerine tüm çözümleri burada toplayayım istedim.

Problemin kaynağı Microsoft‘a açılan bir lisans davasına dayanıyor. Microsoft’ta buna çözüm olarak yeni çıkardığı bir patch ile update edilen tüm Windows’lardaki I.E. sürümlerine bu özelliği eklemiş durumda. Yani kullanıcı bir sayfada ActiveX denetimi kullanmak istiyorsa bilinçli olarak kendi aktif etmek zorunda. Internet Explorer 7‘de de bu özellik default olarak geldi. Eğer ActiveX denetimlerini kapatırsanız sorun olmayacaktır. Ya da Firefox kullanabilirsiniz :)

Ancak sorunu çalışma stili olarak object, embed gibi tagler yerine JavaScript ile yine içeriği etkilenmeden çalıştırabiliyorsunuz. Zira patent HTML dökümanları ile ilgili olduğu için harici js dosyalarından oluşturulan içerik problem oluşturmuyor. Kendi yaptığınız Flash’lı sitelerde ise bu problemi yaşamak istemiyorsanız, şurada ve burada birkaç çözüm belirtilmiş. Ya da bu yamanında yamalarının, yamalarını -böyle gider bu. Microsoft Style :)- yükleyebilirsiniz. Ama daha kısa bir çözüm istiyorsanız sorunu şöyle çözebilirsiniz:

Bir .js dosyası (mesela sayfayukle.js) oluşturup içine şu JavaScript kodlarını ekleyin:
function RunOnLoad() {theObjects = document.getElementsByTagName("object");
for (var i = 0; i < theObjects.length ; i++) {
theObjects[i].outerHTML = theObjects[i].outerHTML;
}
}

Sonrada bu js dosyasını Flash’ı kullandığınız sayfanın bölümünde çağırın:
<script type="text/javascript" src="script/swfyukle.js"></script>
Son olarak body etiketimize:
onLoad="RunOnLoad();"
özelliği kazandırırsak artık böyle bir sorunumuz kalmayacaktır.

Bir de Dreamweaver kullananlar 8.02 güncellemesini yaparlarsa -ki 8.01 güncellemesini yapmayanlarda bu update ile ikisini birden yapmış oluyor- artık sitelerine Flash eklerken veya varolan kodlarını düzenlerken, Dreamweaver kodlarını bu sorunu aşabilecek şekilde düzenliyor olacak. Geçmiş olsun.

Bu yazı ilginizi çektiyse bunları da okuyabilirsiniz:

“Internet Explorer’da Flash Player Etkinleştirme Problemi” için 7 Yorum yapılmış.


  1. 1 Mirmirik

    Sayfanın en altında çalıştırılmasının sebebi sayfanın istemciye yüklenmiş olması ile ilgili. Bunun yerine şu da yapılabilir:

    <script type="text/javascript" language ="javascript">
    function RunOnLoad() {
    theObjects = document.getElementsByTagName("object");
    for (var i = 0; i < theObjects.length ; i++) {
    theObjects[i].outerHTML = theObjects[i].outerHTML;
    }
    }
    </script>

    Sonrasında <head> tag’leri arasına:
    <script type="text/javascript" src ="script/swfyukle.js"></ script>
    Sonra da "body" tag’ ine:
    <body onLoad="RunOnLoad();">

    Kolay gelsin.

  2. 2 Murat Koçdemir

    Allah razı olsun, saat sabahın 4.30′u, çıldırmaktan öte bir haldeydim ve imdadıma yetiştiniz gerçekten teşekkürler…

  3. 3 Kadir Doğan

    Bu trick’leri eminim Microsoft çalışanlarıda yapıyordur. Güvenlik için miş miş? Zaten Applet, Flash nesneleri browserdan güvenlik gerektirecek bir şeye erişeceği zaman uyarı alınıyor? Bir tık mı önüne geçecek? Asıl URL değişmeden JavaScript redirect yapımı var link bulursam göstereyim. Böyle şeyler tehlikeli.

  4. 4 R.Mete

    Konuyla ilgili bir sürü değişik çözüm buldum. Sanırım sizin çözümünüzden daha kısa ve kolay bir çözüm yok. Teşekkürler…

  5. 5 Firat

    Keşke .js dosyasını da nasıl çağıracağımızı açıklasaydınız. Ama yine de güzel. Teşekkürler…

  6. 6 Necati

    Gerçekten Fırat’ın dediği gibi nasıl çağıracağız onu da söyleseydin :(

  7. 7 Fatih Taşkıran

    Yukarıda geçiyor arkadaşlar nasıl çağıracağınız.

Yorum yapın