Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么DOMParser.parseFromString()返回未初始化的文档?_Javascript_Dom - Fatal编程技术网

Javascript 为什么DOMParser.parseFromString()返回未初始化的文档?

Javascript 为什么DOMParser.parseFromString()返回未初始化的文档?,javascript,dom,Javascript,Dom,因为我是一个爱尴尬的人,所以在关于JavaScript合成文档的一系列愚蠢问题中,我还有另一个问题 下面是:createDocument,createHTMLDocument,newdocument()和DOMParser.parseFromString()都返回新文档。前三个都返回完整的文档,而DOMParser.parseFromString()返回的文档未初始化。知道为什么吗?(我打赌我会犯一些愚蠢的JavaScript错误。) 如果您想测试,下面是一些代码: <script>

因为我是一个爱尴尬的人,所以在关于JavaScript合成文档的一系列愚蠢问题中,我还有另一个问题

下面是:
createDocument
createHTMLDocument
newdocument()
DOMParser.parseFromString()
都返回新文档。前三个都返回完整的文档,而
DOMParser.parseFromString()
返回的文档未初始化。知道为什么吗?(我打赌我会犯一些愚蠢的JavaScript错误。)

如果您想测试,下面是一些代码:

<script>
function doit() {
  var doc1 = document.implementation.createDocument (null, 'html', null);
  console.log(doc1.readyState); // complete

  var doc2 = document.implementation.createHTMLDocument("HTML Doc");
  console.log(doc2.readyState); // complete

  var doc3 = new Document();
  console.log(doc3.readyState); // complete

  var parser = new DOMParser; 
  var doc4 = parser.parseFromString("<!doctype html>", "text/html");
  console.log(doc4.readyState); // uninitialized
}
window.onload = doit;
</script> 

函数doit(){
var doc1=document.implementation.createDocument(null,'html',null);
console.log(doc1.readyState);//完成
var doc2=document.implementation.createHTMLDocument(“HTML文档”);
console.log(doc2.readyState);//完成
var doc3=新文档();
console.log(doc3.readyState);//完成
var parser=新的DOMParser;
var doc4=parser.parseFromString(“,“text/html”);
console.log(doc4.readyState);//未初始化
}
window.onload=doit;

ETA:以上是Firefox上的结果。Chrome返回“interactive”。仍然不确定原因。

只是猜测,但字符串可能包含需要异步加载的元素,如
,在加载之前它不会准备就绪。本例中的字符串是“”,因此我不确定这是否是问题所在。但它可能包含其他内容。因此,接口总是返回一个未完成的文档。更让人困惑的是,它看起来像是
doc4.readyState
在IE11中是“完整的”。