我在我的 IE 9 (9.0.8112.16421) 上看到了一种奇怪的行为,即iframe
使用它更改通过 javascript的位置时iframe.setAttribute( 'src', 'http://..' )
会在 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,它会按预期工作。该 URLhttp://www.google.com:80/OpenTwinsApp/app/index.jsf
似乎也有效。
作为一种解决方法;我正在考虑为 javascript 转发引入一个新页面,因为提供 URL 作为参数似乎很好。这并不理想,但至少它会起作用。
我可以使用其他解决方法吗?
这似乎是 IE 9 中的错误?像往常一样,Chrome 完美无缺。
更新:
- 我尝试仅使用 HTML 设置 iframe src,但我也收到了相同的错误消息。
- 我尝试引入一个转发页面,该页面只会执行 a
document.location.href = 'http://tidevwls03:7161/OpenTwinsApp/app/index.jsf';
,但这也无法加载并出现相同的错误。 - 我尝试使用缩短的 URL
http://goo.gl/Sy4pk
来访问该页面,它导致了同样的错误。