我懂文件。写作被认为是坏习惯;我希望整理一份理由清单,提交给第三方供应商,告诉他们为什么不应该使用文档。编写分析代码的实现。

请附上申领文件的理由。下面是一个坏习惯。


当前回答

我能想到的是:

文档。写需要用在页面加载或正文加载上。因此,如果您想在任何其他时间使用脚本来更新您的页面内容文档。写作几乎毫无用处。 技术文档。write只更新HTML页面,不更新XHTML/XML。IE似乎对这个事实很宽容,但其他浏览器不会。

http://www.w3.org/MarkUp/2004/xhtml-faq#docwrite

其他回答

文档其实没什么问题。写作本身。问题是它很容易被误用。严重,甚至。

对于提供分析代码的供应商(如谷歌analytics)来说,这实际上是他们分发此类代码片段的最简单方法

它使脚本保持较小 他们不必担心重写已经建立的onload事件或包括必要的抽象来安全地添加onload事件 它非常兼容

只要你不尝试在文件加载后使用它,文件。在我看来,写作本身并不是邪恶的。

我能想到的是:

文档。写需要用在页面加载或正文加载上。因此,如果您想在任何其他时间使用脚本来更新您的页面内容文档。写作几乎毫无用处。 技术文档。write只更新HTML页面,不更新XHTML/XML。IE似乎对这个事实很宽容,但其他浏览器不会。

http://www.w3.org/MarkUp/2004/xhtml-faq#docwrite

一些比较严重的问题:

document.write (henceforth DW) does not work in XHTML DW does not directly modify the DOM, preventing further manipulation (trying to find evidence of this, but it's at best situational) DW executed after the page has finished loading will overwrite the page, or write a new page, or not work DW executes where encountered: it cannot inject at a given node point DW is effectively writing serialised text which is not the way the DOM works conceptually, and is an easy way to create bugs (.innerHTML has the same problem)

最好使用安全且DOM友好的DOM操作方法

根据Google-Chrome Dev Tools的Lighthouse Audit所做的分析,

对于连接速度较慢的用户,通过document.write()动态注入的外部脚本可能会将页面加载延迟数十秒。

Chrome浏览器可能阻止文档。编写在某些情况下插入脚本的代码。当这种情况发生时,它将在控制台中显示以下警告:

一个解析器阻塞,跨源脚本,…,通过 document . write。这可能会被浏览器阻止,如果设备 网络连通性差。

引用:

developers.google.com上的这篇文章将详细介绍。 https://www.chromestatus.com/feature/5718547946799104