繁体   English   中英

为什么document.write无法按预期完成

[英]why document.write doesn't complete as expected

只是尝试设置一个小的测试页,即使它的表现也不如预期。

给出以下工作代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE8">
<title>Terry's Test Page</title>
<script src='jquery-1.7.1.min.js'></script>
</head>
<body>
    <p>from the html in index.html</p>
</body>
</html>

我得到了我所期望的,标签标签中的html和Terry's Test Page中的一行。 但是,如果我在</head>行之前添加:

<script>$(document).ready(function() {
document.write('<p>from the js</p>');
});
</script>

我正确地从js行中获取了html,因为document.write替换了html,所以没有从html行中获取,但是选项卡标签未填充Terry的测试页。 在IE中,标签标签显示网址,而在Firefox中,标签显示“正在连接...”,但它永远不会超出该范围。

我不了解的document.write是什么? 我是否必须发出某种文件结尾或类似的结尾?

既然你调用document.write页面加载后,它会调用document.open ,其清空整个文档。 浏览器会尽力而为,并使用您提供的内容创建一个完整的新文档。 文档不仅是body的内容,还包括其他所有内容。

对于您而言,您的文档是<p>from the js</p> ,但是由于这不是有效的HTML文档(缺少htmlheadbody ),因此浏览器将添加必要的内容。

例如拿

document.write('<head><title>foo</title></head>');

这只会创建一个空的body ,但是将页面的标题设置为foo

document.write不再被广泛使用,尤其是在jQuery中。 您应该使用追加或插入。 也就是说,它确实有效,但是不建议使用: http : //jsbin.com/upamem

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM