【问题标题】:Changing src of iframe in IE5 quirks mode cause full page change在 IE5 quirks 模式下更改 iframe 的 src 会导致整页更改
【发布时间】:2015-11-19 15:49:05
【问题描述】:

我有加载到标准框架中的内容。我无法控制迫使浏览器进入 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 开发工具并更改为标准模式,iframe 会按预期加载。如何让 iframe 加载而不会出现问题?

【问题讨论】:

  • 我会调查为什么您的页面以怪异模式呈现。您是否有一些 IE 不支持的 HTML 错误或内容?
  • 我无法控制以 quirks 模式呈现的页面;但是,我的内容必须加载到该页面上的标准框架中。因此,我无法更改以 quirks 模式呈现的主页以解决此问题。

标签: javascript jquery html iframe quirks-mode


【解决方案1】:

来自您的评论:

我无法控制以 quirks 模式呈现的页面;但是,我的内容必须加载到该页面上的标准框架中。

我不敢告诉你,你运气不好。

IE 不支持同一页面上的帧之间的混合呈现模式。如果主页处于 quirks 模式,则该页面中的所有框架或 iframe 也将处于 quirks 模式,即使它们被编写为符合标准。

这就是它的工作原理,你不能覆盖它。

在我看来,您的选择:

  1. 找到一种方法来升级父页面,使其不再需要 Quirks 模式。 (我很欣赏这个选项可能对你不开放,但坦率地说,令人震惊的是,2015 年还有人仍在使用怪癖模式;那些认为不升级任何过时系统来省钱的经理需要被唤醒电话)

  2. 降级您的页面,使其可以在怪癖模式下工作。请注意,如果您使用的是任何现代浏览器功能,则此选项可能无法使用,因为 Quirks 模式会以与 IE5 兼容的名义禁用这些功能。

  3. 在弹出窗口而不是框架中打开您的内容。这似乎是最务实的选择。几乎可以肯定,这将是最少的工作量(一个数量级或数量级)。它可能看起来不像在 iframe 中那么好,但至少它会工作。

【讨论】:

    猜你喜欢
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    • 1970-01-01
    • 2014-05-02
    • 1970-01-01
    • 2010-12-10
    • 2018-02-23
    相关资源
    最近更新 更多