Basically I have a page that launched a fancybox iframe. In that iframe I also include jQuery. But when I testing it in Internet Explorer 9 it gives me the error <
I had the EXACT same issue, but the cause of mine was different. I figured I'd share here in case others were in the same boat as me - especially given that it took me about 4 hours to track down...
Our main page had an iframe which ended up having its src attribute changed twice in a very short amount of time (we were actually loading the same src twice by accident - once directly in the HTML and then again on page load via JavaScript). I'm not sure why Internet Explorer 9 chokes, but I'm guessing that the frame was partially through initializing its scripts when the src was set again, putting the JavaScript engine into an unhappy state. Either way I'm glad I found it, since we shouldn't have been loading the frame twice!
However, the real reason why Internet Explorer 9 died so bad is a mystery.
This is a related issue: IE9 throws exceptions when loading scripts in iframe. Why?
There seems to be some real issue in Internet Explorer with native global objects such as 'Function' and 'Object' being undefined in some circumstances when scripts are loaded early (in the head section) of an iframe...
I placed a bounty on that other question to get some more attention to it.
From experience I know this issue also exists in IE8, but it was more rare there it seems. Looks like in IE9 it has gotten worse...
D'oh, thought I had the latest fancy box. Turns out I had 1.3.1, 1.3.4 fixes this issue.
UPD(sompylasar): In fact, that was fixed in 1.3.2 (see the changelog). I've compared the source code of 1.3.2 with 1.3.1 and found the following difference which solves the issue:
content.find('iframe').attr('src', isIE6 && /^https/i.test(window.location.href || '') ? 'javascript:void(false)' : 'about:blank');
where isIE6
evaluates to:
isIE6 = $.browser.msie && $.browser.version < 7 && !window.XMLHttpRequest,
This snippet should be executed before removing the iframe
from the DOM.
The problem was fixed when I removed the SRC attribute from the iframe and I added onOpen event to jQuery's dialog:
open: function()
{
document.getElementById("mainFrame").src = "/login.aspx";
}