我的内容已加载到标准框架中。我无法控制父框架,这会迫使浏览器进入 IE5 Quirks 模式。现在,在我自己的内容中,我尝试更改 iframe 的 src。我正在使用以下代码:
function loadIframe(iframeName, url) {
var $iframe = $('#' + iframeName);
if ( $iframe.length ) {
$iframe.attr('src',url);
return false;
}
return true;
}
loadIframe('frameID', '../myhtmlpage.html');
问题是,当我尝试将新的 src 加载到 iframe 中时,整个窗口都会重新加载。我非常确定这与 IE5Quirks 模式有关,因为如果我启动 IE Developer 工具并更改为标准模式,iframe 将按预期加载。如何才能毫无问题地加载 iframe?
最佳答案
来自您的评论:
I don't have any control over the page that is being rendered in quirks mode; however, my content must be loaded into a standard frame on that page.
我不敢告诉你,你运气不好。
IE不支持同一页面上各帧之间的混合渲染模式。如果主页处于怪异模式,则该页面内的所有框架或 iframe 也将处于怪异模式,即使它们被编写为符合标准。
这就是它的工作原理,您无法覆盖它。
据我所知,您的选择是:
想办法升级父页面,使其不再需要 Quirks 模式。 (我知道这个选项可能不对你开放,但坦率地说,令人震惊的是,2015 年居然还有人在使用怪癖模式;那些认为自己通过不升级任何过时系统来省钱的经理们需要被唤醒向上调用)
降级您的页面,使其可以在怪异模式下工作。请注意,如果您使用任何现代浏览器功能,则此选项可能无法使用,因为 Quirks 模式会以兼容 IE5 的名义禁用这些功能。
在弹出窗口而不是框架中打开内容。这看起来可能是最务实的选择。几乎可以肯定,这将是最少的工作量(可以是一个数量级或数量级)。它可能看起来不像在 iframe 中那么好,但至少它可以工作。
关于javascript - 在 IE5 怪异模式下更改 iframe 的 src 会导致整个页面发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33808449/