[ Ik vond hier niets over op WHT, dus bij deze plak ik even het verhaaltje in over ActiveX wijzigingen in MSIE dat ik gisteravond voor een klant heb opgesteld nadat er opeens twee klachten binnenkwamen dat de ActiveX applicaties het niet goed meer dedenDoe er mee wat je wil, en ja ik weet dat het overal op het web staat en dat het simpel is!
]
Het direct laden van "interactieve" controls zoals ActiveX, Flash en Quicktime werkt niet meer in Internet Explorer. Dit is het resultaat van de Eolas patentzaak tegen Microsoft ( http://en.wikipedia.org/wiki/Eolas ). Wanneer een control direct vanuit de HTML geladen wordt, treedt het volgende verschijnsel op:
- De control wordt pas "interactief" wanneer deze eerst door de gebruiker geactiveerd wordt door middel van een muisklik of toetsaanslag.
- Sommige controls, zoals Microsoft's DHTMLEdit werken in het geheel niet.
Dit heeft met name impact op Flash-navigaties, -banners, en applicaties gebaseerd op ActiveX. Hoewel ze wel op het scherm getoond worden, wordt de interactiviteit ervan verstoord.
Er is een simpele workaround mogelijk om het Eolas-patent te omzeilen, namelijk alle OBJECT en EMBED tags niet langer direct in de HTML schrijven, maar door middel van een extern Javascript aan de pagina toevoegen.
Stap 1: Identificeer gebruik van OBJECT- en EMBED-tags
Doorzoek de broncode van de site op gebruik van OBJECT en EMBED tags in de HTML. Waar je deze vindt, moet je ze zometeen vervangen door een stukje Javascript-code.
Stap 2: Maak een extern Javascript
Maak een .js file, bijvoorbeeld /js/eolas.js, met daarin voor elk zojuist gevonden blok van OBJECT en EMBED-codes een Javascript-functie die de nodige HTML schrijft. Deze Javascript-functie construeer je als volgt, waarbij je voor elke (Flash, ActiveX, Quicktime etc.) control een afzonderlijke functie moet maken.
Stel dat een origineel blokje HTML-code met een OBJECT tag als volgt eruit ziet:
Je dient het volgende met de HTML-code te doen om er Javascript van te maken:Code:<object id="DeftigObject" classid="clsid:2D360201-FFF5-11d1-8D03-00A0C959BC0A" codebase="dhtmled.cab#Version=6,1,0,8244" viewastext> <param name="scrollbars" value="true"> </object>
- Vervang alle " door '
- Zet voor elke HTML-regel document.write("
- Zet na elke HTML-regel ");
- Omring deze regels nu met een Javascript functie-declaratie en geef de functie een naam. Deze naam is vrij te kiezen.
Na bovenstaande stappen ziet het stukje code er als volgt uit:
Het kan zijn dat je verschillende objecten op je site gebruikt; dan moet je meerdere functies aanmaken. Al deze functies zet je in een extern Javascript-bestand, in dit geval /js/eolas.js.Code:function writeEolasDeftigObject() { document.write("<object id='DeftigObject' classid='clsid:2D360201-FFF5-11d1-8D03-00A0C959BC0A'"); document.write(" codebase='dhtmled.cab#Version=6,1,0,8244' viewastext>"); document.write("<param name='scrollbars' value='true'>"); document.write("</object>"); }
Stap 3: Refereer naar het externe Javascript in de HEAD-tags
In de HEAD-tag van de layout dien je een referentie naar /js/eolas.js op te nemen:
Stap 4: Vervang de controls door Javascript functie-aanroepenCode:<script language="javascript" src="/js/eolas.js"></script>
Vervang in de HTML de oude blokjes OBJECT en EMBED door de juiste Javascript-functieaanroep die overeenkomt met de functie die je zojuist hebt gemaakt.
Voorbeeld:
Code:<!-- Insert tbContentElement object here --> <script language="javascript" type="text/javascript"> writeEolasDeftigObject(); </script>

Likes:


Doe er mee wat je wil, en ja ik weet dat het overal op het web staat en dat het simpel is!
]
Niets meer