In a project I'm currently working on I encountered an Explorer bug that depends on the window you open a page with.
I post it here because I know that MSIE team members occasionally read my blog, and I have the faint hope that can they solve this bug, especially since it's messing up one of my projects (and, after all, what in the world is more important than my projects going smoothly <grin>, particularly when I have another important and exciting project that should be finished quickly but is held up by this bug).
This bug occurs in a minority of IE6 installs on WinXP SP 2; and maybe on other Windows versions, too, but I haven't heard about them yet. If the bug occurs on a non-XP install, please leave a comment. On my computer the bug also occurs in IE 7 beta 2 preview 20 March.
The bug occurs in a rather complicated script that works with Windows Media and Real streaming content and with XMLHttp. The HTML contains a hard-coded
<embed> tag that should be replaced by other content, if the bug weren't there. When I replace the hard-coded
<embed> by a
<div> the bug disappears. Unfortunately I haven't been able to further isolate it.
The bug occurs when you open the test page in a second or subsequent window of Internet Explorer. Then IE flatly refuses to execute a crucial
replaceChild and gives an Interface Not Supported error. The script always works correctly when you restart Internet Explorer and load the test page in the first window that opens.
In summary: the script always works in the first window of your session, but in any of the subsequent windows (including, unfortunately, popups) an Interface not supported error may occur. In my checkered career I have never yet encountered a bug that depends on the window you open a page with.
This is the test page. Please open it; it should appear in a new window, and that new window is what triggers the bug. If you see an Interface Not Supported error the bug is active on your IE install. If the page works smoothly, your IE install doesn't contain the bug.
The error occurs in metainformatie.js. The function
verwijderNoscriptFilm() contains this line:
When opened in the second or subsequent window of a session, IE refuses to execute this line and gives an error message. Further on in the script another
replaceChild is used (in data.js;
Player.createNewEmbed), and when the script continues to this line it gives the same error message.
The HTML page contains an
<embed> is replaced by a temporary placeholder
<div>. Then the script loads some XML data, extracts a new stream URL and re-creates an
<embed> to play this stream.
In principle this works fine in IE, Mozilla and Safari, and up to a point in Opera, which is why I chose this approach for the project. It was only when I tried to open the page in a popup that I discovered the bug.
The bug also occurs when I use
removeChild, but not when I use
appendChild. Apparently it's the removal of the hard-coded
<embed> tag that causes the problem.
<embed> tag by a
<div> in the HTML source code solves the bug; it's definitely tied to the use of a hard-coded
<embed> tag. Unfortunately, removing this
Do you see the error? If so, please tell me which IE version on which Windows version you're using. I'm especially interested in non-XP reports.
I’m speaking at the following conferences:
Comments are closed.