我知道使用document.write
时存在很多问题,我完全避免使用它。但是,我遇到了使用它的第三方窗口小部件的问题。我不太清楚如何言语(也可能不知道所有的原因)为什么要避免这一小片纯粹的邪恶。
我已经重写了第三方为内联其小部件而提供的代码,以便它不会使用document.write
。但是,该代码会加载另一个使用它的脚本。我推迟加载脚本,导致document.write
调用发生在onload
之后,覆盖整个页面。
所以问题是,使用document.write
的所有问题是什么,以便我可以提供有关第三方应该修复其代码的原因的全面列表?
提前谢谢!
答案 0 :(得分:4)
因为内联脚本会强制用户的浏览器等待代码 完成(即使我们必须等待外部网址加载)之前 渲染页面的其余部分。
因为我们无法进一步处理(修改/复制等)输出 在将其嵌入实际网页之前。
- 他们也夸大了xhtml代码
答案 1 :(得分:1)
我对document.write
的唯一体验是它会使页面的其余部分空白,因此我会避免使用它。
此外,对于像jQuery这样的库以及本机JavaScript选择器函数,可以更改元素的内容,而不必确保将document.write
放置在您想要的内容的任何位置。这意味着您可以将JavaScript与标记分开,使所有内容更清晰,更易于管理。
答案 2 :(得分:1)
我想在页面加载完成后添加一条关于使用document.write的注释,添加Darin的答案。页面加载完成后,文档流将关闭。这是由浏览器完成的。如果在发生这种情况后尝试使用document.write,则会再次打开文档流并接受输入,但不会自动关闭。这使浏览器处于仍然认为正在加载内容的状态。如果您注意到与服务器的永无止境的“连接”,这可能是一个可能的原因。其他副作用可能是空白页面(不确定这是在IE还是FireFox中)。