Internet Explorer’da Flash Player Etkinleştirme Problemi

Bu konu hakkında daha önce de soru gelmişti ve çözümünü 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 Internet Explorer problemi: Flash animasyonu içeren bir sayfayı gezerken, animasyonun tıklamadan etkinleşmemesi/çalışmaması, arayüz kodlayıcılarını 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 Internet Explorer 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 varsayılan 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 JavaScriptkulanarak aşıp, 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.



7 Responses to “Internet Explorer’da Flash Player Etkinleştirme Problemi”

  1. Mirmirik diyor ki:

    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. Murat Koçdemir diyor ki:

    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. Kadir Doğan diyor ki:

    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. R.Mete diyor ki:

    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. Firat diyor ki:

    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. Necati diyor ki:

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

  7. Fatih Taşkıran diyor ki:

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

Leave a Reply

Additional comments powered by BackType