4

我知道使用有很多问题,document.write我绝对避免使用它。但是,我遇到了使用它的第 3 方小部件的问题。我不太知道如何用语言表达(也可能不知道所有原因)为什么应该避免这一小片纯粹的邪恶。

我已经重写了第 3 方提供的代码来内联他们的小部件,这样它就不会使用document.write. 但是,该代码会加载另一个使用它的脚本。我正在延迟脚本的加载,这导致它的document.write调用发生在 之后onload,覆盖了我的整个页面。

所以问题是,使用的所有问题是什么,document.write以便我可以提供一个完整的列表,说明为什么第 3 方应该修复他们的代码?

先感谢您!

4

3 回答 3

4

引用以下帖子

  • 因为内联脚本强制用户的浏览器在渲染页面的其余部分之前等待代码完成(即使我们必须等待外部 url 加载)。

  • 因为在将输出嵌入实际网页之前,我们无法进一步处理(修改/复制等)输出。

  • 他们也膨胀了xhtml代码
于 2011-09-08T20:26:53.113 回答
1

我唯一的经验document.write是它会使页面的其余部分空白,因此我会避免使用它。

此外,使用 jQuery 等库以及原生 JavaScript 选择器函数,可以更改元素的内容,而不必确保document.write将内容放置在您想要的任何位置。这意味着您可以将您的 JavaScript 与您的标记分开,从而使一切变得更加清晰和易于管理。

于 2011-09-08T20:28:25.003 回答
1

我想在页面完成加载后添加关于使用 document.write 的注释来添加 Darin 的答案。页面完成加载后,文档流将关闭。这是由浏览器完成的。如果您在发生这种情况后尝试使用 document.write,文档流将再次打开并接受输入,但不会自动关闭。这使浏览器处于它仍然认为它正在加载内容的状态。如果您注意到与服务器的“连接”永无止境,这可能是一个原因。其他副作用可能是空白页(不确定这是在 IE 还是 FireFox 中)。

于 2011-09-08T20:33:26.247 回答