为什么使用 document.write 创建 iframe 会“取消”?剩下的所有 JavaScript 代码?

发布于 2024-09-09 01:16:45 字数 349 浏览 10 评论 0原文

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

示例:

<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'))不会执行。为什么?

This happens in all browsers, so there must be a reason.

Example:

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

The code after the iframe write (in this case alert('test')) doesn't execute. Why?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

最偏执的依靠 2024-09-16 01:16:45

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

Because you're writing broken HTML into the document -- there's no > on the iframe tag.

痴骨ら 2024-09-16 01:16:45

您写入文档的 HTML 无效,会导致浏览器无法解释文档的其余部分,包括其余的

您正在编写 就可以了。

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

var iframe = document.createElement('iframe');
iframe.setAttribute("src", "http://google.com/support/");
document.getElementById("container").appendChild(iframe);

Your HTML that you write into the document is invalid and causes the browser to fail interpreting the rest of the document, including the remaining <script> tags.

You are writing <iframe src="http://google.com/support/. Add "></iframe> and it's ok.

However, a cleaner approach would be not to use document.write at all (assuming you have some HTML element with id="container" to hold the iframe):

var iframe = document.createElement('iframe');
iframe.setAttribute("src", "http://google.com/support/");
document.getElementById("container").appendChild(iframe);
少跟Wǒ拽 2024-09-16 01:16:45

您需要关闭报价和 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>

You need to close your quotes and iframe. This works:

<html>
<body>
<script>var a="support/";
var aa='<iframe src="http://google.com/' + a + '" />';
document.write(aa)</script> 
<script>alert('test')</script>
</body>
</html>
不必了 2024-09-16 01:16:45

这段代码很好并且工作正常。您可以在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 编辑器和预览器

This code is Ok and working fine. You can check it on JSFiddle Live DEMO. Rest you can edit it with your data..

<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>

Or you can check it online via HTML Editor And Previewer

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文