【问题标题】:IE9 bug? iframe misbehaving due to URL sensitivityIE9 错误?由于 URL 敏感性导致 iframe 行为异常
【发布时间】:2012-08-13 13:39:27
【问题描述】:

我在我的 IE 9 (9.0.8112.16421) 上看到一个奇怪的行为,即在使用 iframe.setAttribute( 'src', 'http://..' ) 通过 javascript 更改 iframe 的位置时,它会在 javascript 控制台中引发错误。

起初它似乎与大小写有关,但后来令人困惑的是,我尝试了一些带有一些大写字符的其他 URL,并且成功了。

如果我使用下面的 javascript:

frame.setAttribute( 'src', 'http://tidevwls03:7161/OpenTwinsApp/app/index.jsf' );

或者..

frame.src = 'http://tidevwls03:7161/OpenTwinsApp/app/index.jsf';

甚至是硬编码的 HTML..

<iframe src="http://tidevwls03:7161/OpenTwinsApp/app/index.jsf"/>

然后我得到以下错误。

SCRIPT5022: DOM Exception: INVALID_CHARACTER_ERR (5) 
core.js, line 1 character 192310

奇怪的是,如果我将 OpenTwinsApp 部分更改为 opentwinsapp、myapp 或 MyApp,它会按预期工作。 URL http://www.google.com:80/OpenTwinsApp/app/index.jsf 似乎也可以使用。

作为一种解决方法;我正在考虑为 javascript 转发引入一个新页面,因为提供 URL 作为参数似乎很好。这并不理想,但至少它会起作用。

我可以使用其他解决方法吗?

这似乎是 IE 9 中的一个错误?像往常一样,Chrome 完美无缺。

更新:

  • 我已尝试仅使用 HTML 设置 iframe src,但我也收到了相同的错误消息。
  • 我尝试引入一个转发页面,该页面只会执行 document.location.href = 'http://tidevwls03:7161/OpenTwinsApp/app/index.jsf';,但这也无法加载并出现相同的错误。
  • 我尝试使用缩短的 URL http://goo.gl/Sy4pk 访问该页面,结果同样的错误。

【问题讨论】:

  • 硬编码的 HTML 版本不可能给你一个 JavaScript 错误。您需要使用未缩小版本的 JavaScript 代码运行测试,以便更清楚地了解正在发生的事情。
  • 为什么你认为重定向失败了?更有可能是您的目标页面存在问题,并且重定向对其他 URL 有效,仅仅是因为目标页面不存在。 Chrome 工作并不意味着它应该工作。 HTML 遇到麻烦正是因为一切正常。问题是它在每个浏览器中的工作方式都不同。
  • 您是否尝试过重新键入它,只是为了确保不可见的字符不会通过复制粘贴而滑入并因此导致“无效字符”? (不是很可能的原因,但可以快速排除)。
  • @Pointy:很遗憾,以下 HTML 触发了它:ttp://www.w3.org/TR/html4/loose.dtd" rel="nofollow" target="_blank">w3.org/TR/html4/loose.dtd">
  • @JonHanna:是的,我已经尝试过很多次了。没有快乐。

标签: javascript html internet-explorer iframe internet-explorer-9


【解决方案1】:

问题似乎是因为 IE9 标准模式。我更改为 Quirks 模式并加载 IFrame 内容。在我的例子中,我想更改为 IE8 标准模式,以便工具提示也适用于输入元素和 iframe。

以下链接特别有助于帮助我了解如何使浏览器进入 IE 8 标准模式 - Activating Browser Modes with Doctype

最后我添加了&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"&gt; 的文档类型,然后添加了&lt;meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8"&gt; 以使IE 浏览器模拟IE 8。

【讨论】:

    猜你喜欢
    • 2015-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多