【发布时间】:2011-03-01 18:26:44
【问题描述】:
我遇到了一个非常烦人的 IE 问题。基本上我需要使用 JavaScript 设置 IFrame 的源,但是在每次调用期间源文档被执行两次而不是一次。
下面贴上简化的HTML代码(我把它简化了,以便读者快速理解。源是通过JavaScript设置的,因为它会包含动态内容):
<html>
<head>
<title>Iframe test</title>
</head>
<body>
<iframe id="testIframe" scrolling="no" frameborder="0" src="" width="800" height="600"></iframe>
<script language="JavaScript">
document.getElementById("testIframe").src = "http://localhost/test.php";
</script>
</body>
</html>
在这个例子中,test.php 在本地数据库中插入一条记录。每当使用 IE 调用上面的页面时,大多数情况下都会插入两行(有时只插入 1 行,但这不是常态)。我在 Chrome 和 Opera 上测试了相同的脚本,它在它们上正常工作,所以这一定是 IE 问题。
如果直接在 iframe 标记内设置 src IE 开始正常运行,但是我需要能够使用 javascript 构建 URL。
有人遇到过这个问题吗?有人知道解决方案/解决方法吗?
感谢和问候 皮埃尔
【问题讨论】:
-
您是在脚本中创建 IFrame 标记吗?您是否在 DOM 中做任何其他事情,例如移动它?您使用的是 Lightbox 之类的对话框还是它的同事之一?
-
请显示完整代码,您可能希望使用 XHR 方法 (Ajax) 而不是 iframe。
-
首先感谢您的 cmets。 @Pekka,如上所示,正在 HTML 文档中创建 IFrame 标记,我只使用纯 HTML(和一行 JavaCcript)。 @meder。这是一个完整的工作示例(所以它是一个完整的代码)。基本上,由 JavaScript 设置的源由 IE 执行两次。 XHR 方法在我的场景中是不可能的,因为 src 将是一个远程位置并且 Ajax 不支持。
-
奇怪。您可以尝试将 javascript 放入
onload看看是否有任何改变?
标签: javascript internet-explorer dom iframe