1

这种情况在所有浏览器中都会发生,所以一定是有原因的。

例子:

<html>
<body>
<script>var a="support/";
var aa='<iframe src="http://google.com/' + a + '" />'; 
document.write(aa)</script> 
<script>alert('test')</script>
</body>
</html>

iframe 写入后的代码(在本例中为 alert('test'))不执行。为什么?

4

4 回答 4

9

因为您正在将损坏的 HTML 写入文档—— iframe 标记上没有 >。

于 2010-07-09T22:14:54.307 回答
8

您写入文档的 HTML 无效,并导致浏览器无法解释文档的其余部分,包括剩余的<script>标签。

你在写<iframe src="http://google.com/support/。添加"></iframe>就OK了。

但是,更简洁的方法是根本不使用document.write(假设您有一些带有 id="container" 的 HTML 元素来保存 iframe):

var iframe = document.createElement('iframe');
iframe.setAttribute("src", "http://google.com/support/");
document.getElementById("container").appendChild(iframe);
于 2010-07-09T22:38:45.853 回答
2

您需要关闭报价和 iframe。这有效:

<html>
<body>
<script>var a="support/";
var aa='<iframe src="http://google.com/' + a + '" />';
document.write(aa)</script> 
<script>alert('test')</script>
</body>
</html>
于 2010-07-09T22:35:44.397 回答
0

这段代码没问题,工作正常。您可以在JSFiddle Live DEMO上查看。休息一下,你可以用你的数据编辑它..

<script type="text/javascript">
var write_variable="p/about.html";
var write_iframe='<iframe src="http://www.exeideas.com/' + write_variable + '" />';
document.write(write_iframe);
</script>

或者您可以通过HTML Editor And Previewer在线查看

于 2014-08-18T06:13:01.380 回答