EOLAS & IE Quick Fix Doesn’t Work

Trying to weed through the bs here and find a soltuion(s) for you all.

<a href=”http://msdn.microsoft.com/ieupdate/activexchanges.asp#related_topics”>MSDN Article</a>

My manager found the link Microsoft has for explaining exactly how the changes work in the new IE and how to work “around” them. You just set the new attribute for the object tag, NOEXTERNALDATA=”true”, and your good to go, even if your object tag has param tags. The issue is, if your param tags use external data not on your site, then that data won’t work.

Therefore, even existing Flash sites, it seems from reading this, won’t break; no javascript bs needed. Me? I just use <param name=”movie” value=”myMovie.swf”> in a webpage on www.jessewarden.com. This is fine, because the SWF is not from an external domain, but from my site, so no dialogue box for the user.

If that’s all there is too it, then it certainly won’t affect anything I’ve ever done, and I suspect a lot of the disinformation out there is causing people to “fix” things that don’t need to be fixed. They outta test in the new browser before they do so. Just to add to the validity of this, I tested in the new IE browser beta side-by-side with the old IE. Below are the results.

:: tests ::

Uh… ok, Microsoft’s solutions don’t work. Below is the code which I’ll tear apart in the following paragraphs.

&lt;object NOEXTERNALDATA=&quot;false&quot;
classid=&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot; codebase=&quot;http://download.macromedia.com/
pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0&quot; width=&quot;200&quot; height=&quot;200&quot; align=&quot;
middle&quot;&gt;
&lt;param name=&quot;movie&quot; value=&quot;https://www.jessewarden.com/friends.swf&quot; /&gt;<br>
&lt;
param name=&quot;allowScriptAccess&quot; value=&quot;sameDomain&quot; /&gt;<br>
&lt;
param name=&quot;quality&quot; value=&quot;high&quot; /&gt;<br>
&lt;
param name=&quot;wmode&quot; value=&quot;transparent&quot; /&gt;
&lt;embed src=&quot;https://www.jessewarden.com/friends/friends.swf&quot; width=&quot;200&quot; height=&quot;200&quot; align=&quot;middle&quot; quality=&quot;high&quot; wmode=&quot;transparent&quot; allowScriptAccess=&quot;sameDomain&quot; type=&quot;application/x-shockwave-flash&quot; pluginspage=&quot;http://www.macromedia.com/go/getflashplayer&quot;
/&gt;
&lt;/object&gt;

Alrigth, first off, my param tags are not external content. My site is hosted on www.jessewarden.com, and my Flash file is on www.jessewarden.com. However, setting NOEXTERNALDATA to true prevents the SWF from ever being loaded… IE just hangs there indeifinately (the new beta one).

The article cleary states, “If the OBJECT element used to load the control contains PARAM elements but none of the PARAM elements specify a source of data external to the current Web page, then the control does not access remote data.”

The example they give references the URL property. Funny, if I comment out EVERYTHING (I actually removed because the comments showed up in one of my tests), I get the Flash object, but the blank white screen when there is no Flash movie target.

&lt;pre&gt;&lt;code&gt;<br>
&lt;
object NOEXTERNALDATA=&quot;false&quot; classid=&quot;clsid:d27cdb6e-ae6d-11cf-96b8-444553540000&quot; width=&quot;200&quot; height=&quot;200&quot; align=&quot;middle&quot;&gt;
&lt;param name=&quot;movie&quot; value=&quot;friends.swf&quot; /&gt;
&lt;/object&gt;&lt;/code&gt;&lt;/pre&gt;

This tells me that the article is correct; if something DOES reference an external piece of data, basically the object doesn’t get the variable. In this case, Flash never got the “movie” property, therefore the SWF was never loaded. So, yes, the Flash object shows up, but no Flash movie gets loaded. I tried derivates using codebase and classID above; adding them and removing them, all failed. Tried uncommenting certain params, even tried using src instead of movie, still no dice.

There was one instance when I removed the embed, and kept the classid it worked, but all the 10 other tests I did didn’t, therefore leading me to believe it was a fluke, and a cache issue.

As stated, I removed the classid and codebase attributes together, seperately, etc. making as many different combinations I could think of; commenting out params, deleting the params instead of commenting out, leaving the embed tag in the first instances, and deleting it to test; all failed.

Therefore, here are my conclusions.

<b>Conclusions</b>
1) The Flash param tag “movie”, even if relative or hardcoded to the same domain, the new IE still interprets as external to the domain. Therefore, unless this is solved, there is no way to use this solution for 2 reasons: you still have a param tag which prevents you from using rule 1 in the article, and the param tag, even though it may use local data to the web page (whatever that means at this point) the new IE still will interpret as remote, therefore not passing to the Flash object, therefore preventing the Flash object from loading a SWF.
2) The only way, then, is to use external JavaScript, as the Flash object, for IE anyway, requires as least 1 param tag: the movie one.

For right now, I’ve got my NOEXTERNALDATA on my site set to false, as at least it consistently works in both browsers. I thought this article was my savior, but I couldn’t get it to work. Then again, I’m a Flash guy, not a web guru.

<b>Future Trepidations</b>
Even if someone gets the param tag way to work, my <a href=”http://www.erikbianchi.com”>co-worker</a> just told me of something that he read last week that indicates that this is just a proposal. Microsoft’s article is very cool, concise, and neat how they mention “around” in it, hehe, but the issue remains that if EOLAS doesn’t find it acceptable, this whole thing is for naught.

Secondly, the article has a horrible reference to permantly blocking controls. “Using the settings on the Advanced tab on the Internet Options dialog, users can choose to have affected controls blocked by default. When a control is blocked, alternate content is rendered in place of the controls when available, and the user is presented with a notification that the page contains blocked controls. The following image shows the notification that users see when affected controls are blocked.”

Holy phish… if that is somehow turned on, ALL Flash content is not rendered. The user is informed via those annoying text bubbles. Hopefully, most users won’t click it immediately away without reading it like I do and then turn all controls back on to be shown. Thankfully, if it happens again, the bubble itself has a link in it to easily allow the user to not only turn the controls back on, but also to refresh the page: good job Microsoft! Still, this is uncool. I know dynamic web pages are the things of now, but being FORCED to do it this way is kind of dumb. As long as Microsfoft confirms it is the ONLY way, though, is what concerns me, because I tried their first way, and from my tests, it doesn’t work.

<b>Hypothesis</b>
At any rate, I really think it may possibly Macromedia who can make the first one work. If they can change the Flash Player enough to read URL variables from the FlashVar’s param tag instead of the sppended ones like they did in the Flash 6 Player, then maybe they can update the Flash 7 Player to do the same thing with the movie param tag. One can only hope.

*sigh*

The war continues…

7 Replies to “EOLAS & IE Quick Fix Doesn’t Work”

  1. It seems that everyone, including Microsoft, considers this an attack on the industry, and are banding together to fight it, so there is little to worry about. If Microsoft had decided to screw Macromedia, then it would have been a different story. They probably see it just as good business sense not to alienate any more major software companies or the legions of web developers.

  2. I think you’ve got that external thing wrong. I think by external they mean “outside of the html page” – not “outside your domain”. In this context the base64 encoded data stuff comes into play. They way I understand it is that the only way to use “NOEXTERNALDATA” is when you encode the whole swf as base64 into the html page itself. Hmmm… I wonder if that works.

  3. The noexternaldata tag only works if the content of the object tags does not contain data that is external to the “page”, not the “domain”. Since Flash is always referencing an separate SWF this doesn’t work and the javascript trick is required.

    The way I read it this attribute only works when referencing objects that Microsoft has built into the browser. I’m not familiar with any of the, but I perhaps IE application developers or intranet programmers could give some examples.

    Remember, this change affects way more than just Flash content.

  4. Hi Jesse… this blog page has problems rendering in my Mozilla 1.4… I highlighted the text to read it and scanned through a few screens… seems like the core is “I’m having varied troubles with MS’s ’embedded data’ solution”, which I’d expect, considering that other browsers can’t read it and you’d still need the EMBED for other browsers which would throw up the IE/Win permissions dialog. The material on the Macromedia site (with the “write it from external .JS” approach) is less MC-centric.

    I’m not sure I caught the correct core concern there though…?

    jd/mm

  5. Mario, I was definately figuring towards the end that it was page relative, not domain relative. …bleh.

    Simon, thanks for the clarification, it’s nice to have it succinct since there is so much info out there. Trust me, I know there are a lot more, I’m just covering what is my job related function first, can you blame me for being selfish, hehe?

    JD, sorry bro, I know. I’ve used MT’s default CSS which on it’s own blows, and I’ve ravaged it being comprehension (my first use of CSS). When contract is done, I’m redoing my site from scratch which will hopefully solve some of the Safari & Mac display issues as well. Sorry about the text, try going to the trackback which should have the article alone.

    Not really a concern, more of a gripe: I’m forced to use JavaScript because the first solution provided didn’t work. However, now that I understand the first solution is page relative, not domain relative, the JavaScript one is ok (I’m not happy about it, but I’ll live); what my concern is relates to this being all a proposal and may not be the way things work. If it is the final say, cool, I’ll just External JS my life away.

  6. That’s what confused me. It mean external to the page. I interpretted it originally as external to the domain or “site”, but if it’s not on the page, it’s external, so I think what you say is accurate… I guess, I’m still trying to figure it all out.

Comments are closed.