Změna chování Flashe v MSIE
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Změna chování Flashe v MSIEZměna chování Flashe v MSIE

 

Změna chování Flashe v MSIE

Google       Google       21. 4. 2006       9 049×

Microsoft čelí žalobě firmy EOLAS kvůli jistým softwarovým patentům a i když soudní spor zatím neskončil, soud Microsoftu předběžně nařídil, aby změnil chování ActiveX prvků v prohlížeči MSIE, kterého se patent týká.

Reklama
Reklama

Microsoft vydal update, který je součástí automatických aktualizací, a ten mění chování MSIE. Co přesně? Prvky ActiveX se na stránce zaktivní až po kliknutí myši. Například takový Flash banner se animuje, ale pro interakci s uživatelem je jej nutné nejdříve aktivovat kliknutím a až poté můžete kliknout (provést akci), je tedy nutné kliknout 2×. Ale kolik uživatelů asi odradí, když kliknou a nic se nebude dít?

Samozřejmě náprava je možná, ale kolik webmasterů ji bude muset asi provést na desítkách tisíc stránek, scriptů a aplikací, aby prvky ActiveX fungovaly opět korektně?

Jsou 2 možnosti nápravy, které zvěřejňuje šéf-webmaster Seznamu Chose na svém blogu:

Řešení 1 – vložení objektu přes externí skript

Pokud je do stránky ActiveX objekt vložen z externího javascriptu, vše funguje bez problému.


<!-- HTML stránka -->
<html>
<body>
<script type="text/javascript" src="embed.js"></script>
</body>
</html>

// externí javascript
document.write('<embed src="flash.swf"></embed>');

Řešení 2 – externí znovuvložení pomocí outerHTML nebo innerHTML

Pokud je daný flash ve stránce „natvrdo“, je možné ho znovu vložit pomocí externího JavaScriptu. S tímto řešením přišel David Grudl, popisuje ho na svém blogu.

Do stránky jednoduše nalinkujete externí javascript, který se načte pouze v IE (podmíněné komentáře) a až po načtení HTML kódu stránky (vlastnost defer) se v cyklu projdou veškeré objekty a znovu se vloží.


<!-- HTML stránka -->
<html>
<head>
<!--[if IE]>
<script type="text/javascript" src="fix_eolas.js" defer="defer"></script>
<![endif]-->
</head>
<body>
<embed src="flash.swf"></embed>
</body>
</html>

Aby byl skript opravdu univerzální, musel být drobně rozšířen:


// (c) David Grudl aka -dgx-
//
// more info: http://www.dgx.cz/knowhow/eolas-workaround/
//
// updated by Josef Šíma - Chose
// 
http://www.chose.cz/weblog/index.php/jak-obejit-nefunkcni-flashe-po-aktualizaci-ie/
//
var aXobjects = new Array("object","embed","applet");
for (var x=0; x<aXobjects.length; x++) {
var objects = document.getElementsByTagName(aXobjects[x]);
for (var i=0; i<objects.length; i++) {
objects[i].outerHTML = objects[i].outerHTML;
}
}

Takto upravený skript má drobnou nevýhodu – pokud ve stránce máte flash vložený přes object s embedem, dojde ke dvojitému znovuvložení (jednou výměna object, podruhé výměna embed). Ošetřit to je seice možné, ale to už záleží na vaší šikovnosti. Nebo můžete použít jednodušší (původní) verzi skriptu od Davida Grudla.

Dále je nutné si dát pozor na správně nastavenou cache na serveru, protože pokud by daný soubor nebyl správně uložen u klienta, tak by se po znovuvložení opět stahoval ze serveru.

Je nepříjemné, že odstranit toto omezení jde pouze pomocí externího skriptu, tudíž pokud obsah výše uvedeného skriptu vložíte inline na konec stránky, tak i po jeho vykonání budou objekty stále neaktivní. Nicméně řešení existuje, není to sice nic hezkého, ale mohlo to být horší.

Další informace najdete zde:

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

Hlasování bylo ukončeno    
0 hlasů
Google
(fotka) Lukáš ChurýLukáš je šéfredaktorem Programujte, vyvíjí webové aplikace, fascinuje ho umělá inteligence a je lektorem na FI MUNI, kde učí navrhovat studenty GUI. Poslední dobou se snaží posunout Laser Game o stupeň výše a vyvíjí pro něj nové herní aplikace a elektroniku.
Web     Twitter     Facebook     LinkedIn    

Nové články

Obrázek ke článku Nový IT hráč na českém trhu

Nový IT hráč na českém trhu

V roce 2015 otevřela v Praze na Pankráci v budově City Tower své kanceláře společnost EPAM Systems (NYSE:EPAM), jejíž centrála se nachází v USA. Společnost byla založená v roce 1993 a od té doby prošla velkým vývojem a stále roste.

Reklama
Reklama
Obrázek ke článku České Radiokomunikace opět hledají nejlepší nápady pro internet věcí

České Radiokomunikace opět hledají nejlepší nápady pro internet věcí

České Radiokomunikace (CRA) pořádají druhý ročník CRA IoT Hackathonů. Zájemci z řad vývojářů a fanoušků moderních technologií mohou změřit své síly a během jediného dne sestrojit co nejzajímavější funkční prototyp zařízení, které bude komunikovat prostřednictvím sítě LoRa. CRA IoT Hackathony se letos uskuteční ve dvou fázích, na jaře a na podzim, v různých městech České republiky. Jarní běh se odstartuje 31. března v Brně a 7. dubna v Praze.

Obrázek ke článku Cloud computing je využíván stále intenzivněji

Cloud computing je využíván stále intenzivněji

Využívání cloud computingu nabývá na intenzitě. Jen v letošním roce vzroste podle analytiků trh se službami veřejného cloudu o 18 %, přičemž o téměř 37 % vzrostou služby typu IaaS. Růst o více než pětinu pak čeká služby poskytování softwaru formou služby, tedy SaaS. Aktuálním trendům v oblasti využívání cloudu se bude věnovat konference Cloud computing v praxi, která se koná 23. března. 2017 v pražském Kongresovém centru Vavruška na Karlově náměstí 5.

Reklama autora

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032017 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý