<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-26572568</id><updated>2011-12-15T03:02:22.448Z</updated><title type='text'>IE ActiveX Change"Click to activate and use this control"</title><subtitle type='html'>This Blog is designed as a central resource to help developers deal with the recent changes to Internet Explorer, which now required any embedded content, such as Flash, to "Click to activate and use this control".</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://activecontent.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26572568/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://activecontent.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Mark</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>6</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-26572568.post-114579144945624233</id><published>2006-04-23T12:21:00.000+01:00</published><updated>2007-01-31T13:00:58.736Z</updated><title type='text'>Using Comments Solution</title><content type='html'>This solution is very similar to the &amp;lt;div&amp;gt; solution published earlier, however the original &amp;lt;div&amp;gt; solution had a few problems due to the fact that IE would request the swf twice, once for the hidden div, and again when the JavaScript wrote the contents back out again. It also sometimes caused IE to think it was still loading an item, even though the page had finished loading. This solution gets around the problem by preventing IE loading the initial swf by using comments.&lt;br /&gt;&lt;br /&gt;First of all create a JavaScript file called, say, ieupdate.js, containing the following code:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;var bo_ns_id = 0;&lt;br /&gt;&lt;br /&gt;function startIeFix(){&lt;br /&gt;  if(isIE()){&lt;br /&gt;    document.write('&amp;lt;div id="bo_ns_id_' + bo_ns_id + '"&amp;gt;&amp;lt;!-- ');&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function endIeFix(){&lt;br /&gt;  if(isIE()){&lt;br /&gt;    document.write('&amp;lt;/div&amp;gt;');&lt;br /&gt;    var theObject = document.getElementById("bo_ns_id_" + bo_ns_id++);&lt;br /&gt;    var theCode = theObject.innerHTML;&lt;br /&gt;    theCode = theCode.substring(4 ,9+theCode.indexOf("&amp;lt;/object&amp;gt;"))&lt;br /&gt;    document.write(theCode);&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function isIE(){&lt;br /&gt;  // only for Win IE 6+&lt;br /&gt;  // But not in Windows 98, Me, NT 4.0, 2000&lt;br /&gt;  var strBrwsr= navigator.userAgent.toLowerCase();&lt;br /&gt;  if(strBrwsr.indexOf("msie") &amp;gt; -1 &amp;&amp; strBrwsr.indexOf("mac") &amp;lt; 0){&lt;br /&gt;    if(parseInt(strBrwsr.charAt(strBrwsr.indexOf("msie")+5)) &lt; 6){&lt;br /&gt;      return false;&lt;br /&gt;    }&lt;br /&gt;    if(strBrwsr.indexOf("win98") &amp;gt; -1 ||&lt;br /&gt;       strBrwsr.indexOf("win 9x 4.90") &amp;gt; -1 ||&lt;br /&gt;       strBrwsr.indexOf("winnt4.0") &amp;gt; -1 ||&lt;br /&gt;       strBrwsr.indexOf("windows nt 5.0") &amp;gt; -1)&lt;br /&gt;    {&lt;br /&gt;      return false;&lt;br /&gt;    }&lt;br /&gt;    return true;&lt;br /&gt;  }else{&lt;br /&gt;    return false;&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;This will then need to be included within the &amp;lt;head&amp;gt; tags for each page:&lt;br /&gt;&lt;pre&gt;&amp;lt;script type="text/javascript" src="ieupdate.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Then you need to include a line directly before, and directy after each &amp;lt;object&amp;gt; tag:&lt;br /&gt;&lt;pre&gt;&amp;lt;script type="text/javascript"&amp;gt;startIeFix();&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;object ...&lt;br /&gt;etc etc&lt;br /&gt;&amp;lt;/object&amp;gt;&lt;br /&gt;&amp;lt;!-- --&amp;gt;&amp;lt;script&lt;br /&gt;type="text/javascript"&amp;gt;endIeFix();&amp;lt;/script&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Note: Although the empty comment tag doesn't seem to do anything, it is necessary to get the closing comment tag (--&amp;gt;), otherwise once IE has written out the starting comment tag it will treat everything as a comment until it reaches a closing comment.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;As the code is extracted from the comments the swf file isn't requested nor loaded until it is rewritten by the external JavaScript.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26572568-114579144945624233?l=activecontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://activecontent.blogspot.com/feeds/114579144945624233/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26572568&amp;postID=114579144945624233' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26572568/posts/default/114579144945624233'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26572568/posts/default/114579144945624233'/><link rel='alternate' type='text/html' href='http://activecontent.blogspot.com/2006/04/using-comments-solution.html' title='Using Comments Solution'/><author><name>Mark</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26572568.post-114562120375321967</id><published>2006-04-21T12:25:00.000+01:00</published><updated>2006-09-13T09:42:41.666+01:00</updated><title type='text'>Rewrite div solution</title><content type='html'>This solution is very similar to the &amp;lt;noscript&amp;gt; solution published earlier, but my original version using &amp;lt;divs&amp;gt; didn't work if you used FlashVars parameters. However, thanks to a suggestion in the Flash Forums from hemels I've updated to JavaScript to workaround the problem.&lt;br /&gt;&lt;br /&gt;First of all create a JavaScript file called, say, ieupdate.js, containing the following code:&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-size: smaller;"&gt;var bo_ns_id = 0;&lt;br /&gt;&lt;br /&gt;function startIeFix(){&lt;br /&gt;  if(isIE()){&lt;br /&gt;    document.write('&amp;lt;div style="display: none;" id="bo_ns_id_' + bo_ns_id + '"&amp;gt;');&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function endIeFix(){&lt;br /&gt;  if(isIE()){&lt;br /&gt;    document.write('&amp;lt;/div&amp;gt;');&lt;br /&gt;    var theObject = document.getElementById("bo_ns_id_" + bo_ns_id++);&lt;br /&gt;    if(theObject.firstChild.data){&lt;br /&gt;      theObject.firstChild.removeAttribute('data');&lt;br /&gt;    }&lt;br /&gt;    var theParams = theObject.getElementsByTagName("param");&lt;br /&gt;    var theParamsLength = theParams.length;&lt;br /&gt;    for (var j = 0; j &amp;lt; theParamsLength; j++) {&lt;br /&gt;      if(theParams[j].name.toLowerCase() == 'flashvars'){&lt;br /&gt;        var theFlashVars = theParams[j].value;&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;    var theInnnerHTML = theObject.innerHTML;&lt;br /&gt;    var re = /&amp;lt;param name="FlashVars" value=""&amp;gt;/ig;&lt;br /&gt;    theInnnerHTML = theInnnerHTML.replace(re, "&amp;lt;param name='FlashVars' value='" + theFlashVars + "'&amp;gt;");&lt;br /&gt;    theObject.outerHTML = theInnnerHTML;&lt;br /&gt;  }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function isIE(){&lt;br /&gt;  var strBrwsr = navigator.userAgent.toLowerCase();&lt;br /&gt;  if(strBrwsr.indexOf("msie") &amp;gt; -1 &amp;&amp; strBrwsr.indexOf("mac") &amp;lt; 0){&lt;br /&gt;    return true;&lt;br /&gt;  }else{&lt;br /&gt;    return false;&lt;br /&gt;  }&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;This will then need to be included within the &amp;lt;head&amp;gt; tags for each page:&lt;br /&gt;&lt;pre style="font-size: smaller;"&gt;&amp;lt;script type="text/javascript" src="ieupdate.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Then you need to include a line directly before, and directy after each &amp;lt;object&amp;gt; tag:&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-size: smaller;"&gt;&amp;lt;script type="text/javascript"&amp;gt;startIeFix();&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;object ...&lt;br /&gt;etc etc&lt;br /&gt;&amp;lt;/object&amp;gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;endIeFix();&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;And that is it! The code checks for IE on a PC, and so doesn't affect any other browsers, the &amp;lt;object&amp;gt; is enclosed in a div with its display style set to 'none', and so doesn't run until the external javscript writes it back out (therefore doesn't cause any double running issues), and the code still maintains any FlashVars too!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26572568-114562120375321967?l=activecontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://activecontent.blogspot.com/feeds/114562120375321967/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26572568&amp;postID=114562120375321967' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26572568/posts/default/114562120375321967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26572568/posts/default/114562120375321967'/><link rel='alternate' type='text/html' href='http://activecontent.blogspot.com/2006/04/rewrite-div-solution.html' title='Rewrite div solution'/><author><name>Mark</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26572568.post-114554210322433167</id><published>2006-04-20T14:57:00.000+01:00</published><updated>2006-09-29T02:36:27.276+01:00</updated><title type='text'>Simple Write Out (With optional RegEx)</title><content type='html'>An alternative to all the official solutions is instead of passing through a list of parameters and attributes for the width, height, bgcolor etc which the receiving JavaScript function then needs to join together again, is to simply pass the entire &amp;lt;object&amp;gt; to a JavaScript function that writes it back out to the screen.&lt;br /&gt;&lt;br /&gt;The JavaScript function for this is very simple:&lt;br /&gt;&lt;pre&gt;function ieoutput(theText){&lt;br /&gt;   document.write(theText);&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;The tricky part comes with replacing the &amp;lt;object&amp;gt; tag with a call to the JavaScript function, and including it in a &amp;lt;noscript&amp;gt; tag too, to allow for browsers with javaScript disabled.&lt;br /&gt;&lt;br /&gt;So that the final code looks like:&lt;br /&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;echocontent('&amp;lt;object ...' +&lt;br /&gt; 'your code' +&lt;br /&gt; 'your code' +&lt;br /&gt;'&amp;lt;/object&amp;gt;')&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;noscript&amp;gt;&lt;br /&gt;&amp;lt;object ...&lt;br /&gt; your code &lt;br /&gt;&amp;lt;/object&amp;gt;&lt;br /&gt;&amp;lt;/noscript&amp;gt;&lt;br /&gt;&lt;br /&gt;As a short cut, we can use the Regular Expression Search and Replace feature of &lt;a href="http://www.textpad.com/"&gt;TextPad&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;For the normal 7 lines of HTML code for Flash we can search for:&lt;br /&gt;&lt;pre&gt;\(.*\)\n\(.*\)\n\(.*\)\n\(.*\)\n\(.*\)\n\(.*\)\n\(.*\)&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;And replace with:&lt;br /&gt;&lt;pre&gt;&amp;lt;script type="text/javascript"&amp;gt;ieoutput('\1'&lt;br /&gt;\+\n '\2' \+\n '\3' \+\n '\4' \+\n '\5' \+\n '\6' \+\n&lt;br /&gt;'\7')\n&amp;lt;/script&amp;gt;\n&amp;lt;noscript&amp;gt;\n&amp;\n&amp;lt;/noscript&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;If you have a different number of lines in your &amp;lt;object&amp;gt; the Regular Expression can be changed accordingly.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26572568-114554210322433167?l=activecontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://activecontent.blogspot.com/feeds/114554210322433167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26572568&amp;postID=114554210322433167' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26572568/posts/default/114554210322433167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26572568/posts/default/114554210322433167'/><link rel='alternate' type='text/html' href='http://activecontent.blogspot.com/2006/04/simple-write-out-with-optional-regex.html' title='Simple Write Out (With optional RegEx)'/><author><name>Mark</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26572568.post-114553981234200447</id><published>2006-04-20T14:16:00.000+01:00</published><updated>2006-05-05T17:45:04.056+01:00</updated><title type='text'>&lt;noscript&gt; solution</title><content type='html'>In the &lt;a href="http://www.macromedia.com/cfusion/webforums/forum/messageview.cfm?catid=194&amp;threadid=1125916&amp;amp;enterthread=y"&gt;Macromedia Forums&lt;/a&gt;, &lt;span style="font-style: italic;"&gt;fpproductions&lt;/span&gt; came up with a clever workaround using the &amp;lt;noscript&amp;gt; tags. The solution works by getting IE to add a  &amp;lt;noscript&amp;gt; just before the object, and a  &amp;lt;/noscript&amp;gt; just after the object, and we can then use JavaScript to read the contents of the  &amp;lt;noscript&amp;gt; tag, and write it back out again. I changed fpproductions original script for that the object tag is written out as soon as IE processes each object tag.&lt;br /&gt;&lt;br /&gt;Firstly create a JavaScript file called, say, ienoscript.js containing:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;var bo_ns_id = 0;&lt;br /&gt;&lt;br /&gt;function startIeFix(){&lt;br /&gt;if(isIE()){&lt;br /&gt;document.write('&amp;lt;noscript id="bo_ns_id_' + bo_ns_id + '"&amp;gt;');&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function endIeFix(){&lt;br /&gt;if(isIE()){&lt;br /&gt;var theObject = document.getElementById("bo_ns_id_" + bo_ns_id++);&lt;br /&gt;var theNoScript = theObject.innerHTML;&lt;br /&gt;document.write(theNoScript);&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function isIE(){&lt;br /&gt;var strBrowser = navigator.userAgent.toLowerCase();&lt;br /&gt;if(strBrowser.indexOf("msie") &amp;gt; -1 &amp;&amp;amp; strBrowser.indexOf("mac") &amp;lt; 0){&lt;br /&gt;return true;&lt;br /&gt;}else{&lt;br /&gt;return false;&lt;br /&gt;}&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;This file is referenced inbetween the &amp;lt;head&amp;gt; and &amp;lt;/head&amp;gt; tags:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&amp;lt;script type="text/javascript" src="ienoscript.js"&amp;gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;&lt;br /&gt;Then, for each &amp;lt;object&amp;gt; tag you need to add a line above and below each one.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;script type="text/javascript"&amp;gt;startIeFix();&amp;lt;/script&amp;gt;&lt;br /&gt;&amp;lt;object&lt;br /&gt;etc etc&lt;br /&gt;&amp;lt;/object&amp;gt;&lt;br /&gt;&amp;lt;!--[if gte IE 6]&amp;gt;&amp;lt;/noscript&amp;gt;&amp;lt;![endif]--&amp;gt;&amp;lt;script&lt;br /&gt;type="text/javascript"&amp;gt;endIeFix();&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;It seems to work OK on all the browsers I tried it on, the only exception being Opera when it identifies itself as IE, which I guess could be solved using the [if gte IE 6] to write the top &amp;lt;script&amp;gt; bit out too. Something like:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;!--[if gte IE 6]&amp;gt;&amp;lt;script type="text/javascript"&amp;gt;startIeFix();&amp;lt;/script&amp;gt;&amp;lt;![endif]--&amp;gt;&lt;br /&gt;&amp;lt;object&lt;br /&gt;etc etc&lt;br /&gt;&amp;lt;/object&amp;gt;&lt;br /&gt;&amp;lt;!--[if gte IE 6]&amp;gt;&amp;lt;/noscript&amp;gt;&amp;lt;script&lt;br /&gt;type="text/javascript"&amp;gt;endIeFix();&amp;lt;/script&amp;gt;&amp;lt;![endif]--&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Note:&lt;/span&gt;&lt;br /&gt;This technique also preserves any FlashVars parameters too.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26572568-114553981234200447?l=activecontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://activecontent.blogspot.com/feeds/114553981234200447/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26572568&amp;postID=114553981234200447' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26572568/posts/default/114553981234200447'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26572568/posts/default/114553981234200447'/><link rel='alternate' type='text/html' href='http://activecontent.blogspot.com/2006/04/solution.html' title='&amp;lt;noscript&amp;gt; solution'/><author><name>Mark</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26572568.post-114553164480870609</id><published>2006-04-20T11:53:00.000+01:00</published><updated>2007-01-26T18:13:20.413Z</updated><title type='text'>External JavaScript solutions</title><content type='html'>The problems with all the official solutions (see links in the right hand column), is that they all require you to change your existing HTML pages. Wouldn't it be great if you could make one simple change to your site and all your pages would work again?&lt;br /&gt;&lt;br /&gt;Well, in theory at least, you can. Any tag that is written to the page through an external script is not affected by the IE update, and so we can use an external JavaScript file to loop through and replace all the instances of &amp;lt;object&amp;gt; tags, and replace them with themselves. The basic code for this is:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;theObjects = document.getElementsByTagName("object");&lt;br /&gt;for (var i = 0; i &amp;lt; theObjects.length; i++) {&lt;br /&gt;  theObjects[i].outerHTML = theObjects[i].outerHTML;&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;Unfortunately there are a few problems with this solution. For a start some browsers (such as IE on a Mac) have trouble with the code, and outerHTML is an IE only property. This can easily be fixed with a check for the platform/browser.&lt;br /&gt;&lt;br /&gt;Another issue is that if you use the data attribute in the &amp;lt;object&amp;gt; tag (such as in the Flash Satay method) then for some reason IE doesn't see any of the parameters, but again this can be overcome with a bit of JavaScript to remove the attribute, as IE doesn't use it anyway, it is only there for other browsers.&lt;br /&gt;&lt;br /&gt;More troublesome though is the fact that IE tends to remember the original &amp;lt;object&amp;gt;, and this can cause issues such as increased memory/cpu usage, especially as IE doesn't always seem to remove the original &amp;lt;object&amp;gt; when leaving the page.&lt;br /&gt;&lt;br /&gt;In the Macromedia Forums, fpproductions came up with a simple solution of including an window.onunload event, that kills the &amp;lt;object&amp;gt; by setting the outerHTML to an empty string.&lt;br /&gt;&lt;br /&gt;Combining these additions together we have:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;function ieupdate(){&lt;br /&gt; var strBrowser = navigator.userAgent.toLowerCase();&lt;br /&gt; if(strBrowser.indexOf("msie") &amp;gt; -1 &amp;&amp; strBrowser.indexOf("mac") &amp;lt; 0){&lt;br /&gt;  var theObjects = document.getElementsByTagName('object');&lt;br /&gt;  var theObjectsLen = theObjects.length;&lt;br /&gt;  for (var i = 0; i &amp;lt; theObjectsLen; i++) {&lt;br /&gt;   if(theObjects[i].outerHTML){&lt;br /&gt;    if(theObjects[i].data){&lt;br /&gt;     theObjects[i].removeAttribute('data');&lt;br /&gt;    }&lt;br /&gt;    var theParams = theObjects[i].getElementsByTagName("param");&lt;br /&gt;    var theParamsLength = theParams.length;&lt;br /&gt;    for (var j = 0; j &amp;lt; theParamsLength; j++) {&lt;br /&gt;      if(theParams[j].name.toLowerCase() == 'flashvars'){&lt;br /&gt;        var theFlashVars = theParams[j].value;&lt;br /&gt;      }&lt;br /&gt;    }&lt;br /&gt;    var theOuterHTML = theObjects[i].outerHTML;&lt;br /&gt;    var re = /&amp;lt;param name="FlashVars" value=""&amp;gt;/ig;&lt;br /&gt;    theOuterHTML = theOuterHTML.replace(re,&lt;span class="Unicode"&gt;↵&lt;/span&gt;&lt;br /&gt;"&amp;lt;param name='FlashVars' value='" + theFlashVars + "'&amp;gt;");&lt;br /&gt;    theObjects[i].outerHTML = theOuterHTML;&lt;br /&gt;   }&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;window.onunload = function() {&lt;br /&gt; if (document.getElementsByTagName) {&lt;br /&gt;  var objs = document.getElementsByTagName("object");&lt;br /&gt;  for (i=0; i&amp;lt;objs.length; i++) {&lt;br /&gt;   objs[i].outerHTML = "";&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Note: The &lt;span class="Unicode"&gt;↵&lt;/span&gt; character in in the above code means that  the code should run on one continuous line.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;All that remains to do is place a call to the ieupdate somwhere on the page, now the easiest way would to include it in the window.onload event, however this is triggered when the page has finished loading, which may cause the Flash movies to play for a few seconds and then be replaced. Therefore placing a call to the ieupdate function just before the &amp;lt;/body&amp;gt; is probably the best bet.&lt;br /&gt;&lt;pre&gt;&amp;lt;script type="text/javascript"&amp;gt;ieupdate();&amp;lt;/script&amp;gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;s&gt;&lt;b&gt;Outstanding Issues&lt;/b&gt;&lt;br /&gt;If you use FlashVars parameter then for some reason IE doesn't see it as part of the outerHTML, and therefore isn't carried over to the rewritten object. You can get around it by passing through the information as a querystring on the swf, but we are trying to avoid altering the HTML at all!&lt;/s&gt;&lt;br /&gt;&lt;br /&gt;I've updated the code to maintain any FlashVars set in the &amp;lt;param&amp;gt; tags.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;In other articles we'll be looking at alternative solutions, that while requiring changes to the HTML code are very minor, especially when compared to the official solutions.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26572568-114553164480870609?l=activecontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://activecontent.blogspot.com/feeds/114553164480870609/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26572568&amp;postID=114553164480870609' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26572568/posts/default/114553164480870609'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26572568/posts/default/114553164480870609'/><link rel='alternate' type='text/html' href='http://activecontent.blogspot.com/2006/04/external-javascript-solutions.html' title='External JavaScript solutions'/><author><name>Mark</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-26572568.post-114552887582168568</id><published>2006-04-20T11:21:00.000+01:00</published><updated>2006-04-20T11:31:27.063+01:00</updated><title type='text'>Microsoft / Eolas Patent fight timeline</title><content type='html'>&lt;span style="font-family:verdana;"&gt;Although this change to IE appears to have come out of nowhere it has in fact been a long running battle between Eolas and Microsoft, these news stories, from&lt;a href="http://www.theregister.co.uk/"&gt; The Register&lt;/a&gt;, show its progress:&lt;/span&gt;&lt;br /&gt;&lt;ul style="font-family: verdana;"&gt;&lt;li&gt;&lt;a aiotitle="Microsoft patches IE after Eolas ruling" href="http://www.theregister.co.uk/2006/04/03/ms_patches_ie/"&gt;Microsoft patches IE after Eolas ruling&lt;/a&gt; - 3rd April 2006&lt;/li&gt;&lt;li&gt;&lt;a aiotitle="Eolas patent ruling provokes IE tweak" href="http://www.theregister.co.uk/2005/12/05/ie_tweaks/"&gt;Eolas patent ruling provokes IE tweak&lt;/a&gt; - 5th December 2005&lt;/li&gt;&lt;li&gt;&lt;a aiotitle="Supremes shun Microsoft's Eolas appeal" href="http://www.theregister.co.uk/2005/10/31/microsoft_eolas/"&gt;Supremes shun Microsoft's Eolas appeal&lt;/a&gt; - 31st October 2005&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.theregister.co.uk/2005/09/30/uspto_upholds_eolas_patent/"&gt;Patent Office upholds Eolas browser patent&lt;/a&gt; - 30th September 2005&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.theregister.co.uk/2005/03/03/microsoft_eolas_patent_case/"&gt;Appeals court hits rewind in Microsoft Eolas case&lt;/a&gt; - 3rd March 2005&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.theregister.co.uk/2004/12/10/eolas_appeal/"&gt;MS Eolas appeal begins&lt;/a&gt; - 10th December 2004&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.theregister.co.uk/2004/08/19/pto_rules_on_eolas_patent/"&gt;Microsoft wins another Eolas web patent battle&lt;/a&gt; - 19th August 2004&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.theregister.co.uk/2004/03/05/eolas_web_patent_nullified/"&gt;Eolas' web patent nullified&lt;/a&gt; - 5th March 2004&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.theregister.co.uk/2004/01/15/microsoft_loses_521m_eolas_patent/"&gt;Microsoft loses $521m Eolas patent appeal&lt;/a&gt; - 15th January 2004 &lt;/li&gt;&lt;li&gt;&lt;a href="http://www.theregister.co.uk/2003/11/12/us_patent_office_will_review/"&gt;US Patent Office will review Eolas claim&lt;/a&gt; - 12th November 2003&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.theregister.co.uk/2003/10/30/bernerslee_comes_out_fighting/"&gt;Berners-Lee comes out fighting to save Web&lt;/a&gt; - 30th October 2003&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.theregister.co.uk/2003/10/08/microsoft_tweaks_ie/"&gt;Microsoft tweaks IE&lt;/a&gt; - 8th October 2003&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.theregister.co.uk/2003/08/29/microsoft_preps_ie_changes/"&gt;Microsoft preps IE changes in response to patent ruling&lt;/a&gt; - 29th August 2003&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.theregister.co.uk/2003/08/12/microsoft_fined_520m_for_infringing/"&gt;Microsoft fined $520m for infringing patents&lt;/a&gt; - 2th August 2003&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.theregister.co.uk/2003/07/08/microsoft_to_face_patent_violation/"&gt;Microsoft to face patent violation claims today&lt;/a&gt; - 8th July 2003&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.theregister.co.uk/1999/02/03/microsoft_sued_over_alleged_activex/"&gt;Microsoft sued over alleged ActiveX patent violation&lt;/a&gt; - 3rd February 1999&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/26572568-114552887582168568?l=activecontent.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://activecontent.blogspot.com/feeds/114552887582168568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=26572568&amp;postID=114552887582168568' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/26572568/posts/default/114552887582168568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/26572568/posts/default/114552887582168568'/><link rel='alternate' type='text/html' href='http://activecontent.blogspot.com/2006/04/microsoft-eolas-patent-fight-timeline.html' title='Microsoft / Eolas Patent fight timeline'/><author><name>Mark</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
