Google chrome extension google chrome扩展名-document.body在弹出js文件中为空

Google chrome extension google chrome扩展名-document.body在弹出js文件中为空,google-chrome-extension,Google Chrome Extension,我从google文档中的hello world应用程序开始编写chrome扩展 我只是将popup.js修改为: var span = document.createElement("span"); span.innerHTML = "<b>blah</b>"; alert(document.head); alert(document.body); document.body.appendChild(span); var span=document.createElem

我从google文档中的hello world应用程序开始编写chrome扩展

我只是将popup.js修改为:

var span = document.createElement("span");
span.innerHTML = "<b>blah</b>";
alert(document.head);
alert(document.body);
document.body.appendChild(span);
var span=document.createElement(“span”);
span.innerHTML=“诸如此类”;
警报(文件头);
警报(document.body);
document.body.appendChild(span);

我希望在弹出窗口中显示“blah”,但我得到的document.body为null。我是js和chrome的新手,我正试图弄清楚这里发生了什么。我做错了什么?

当重新输入结束脚本标记时,直接计算相应的代码


由于头中加载了
background.js
,因此
还不存在。因此,当弹出脚本运行时,
document.body
null
DOM还不存在。您需要在弹出脚本中收听
DOMContentLoaded
事件

类似这样的方法会奏效:

  document.addEventListener('DOMContentLoaded', function(event) {
    console.log(document.body);
  });

我确实考虑过这个问题,但是google的hello world示例又是如何工作的呢@该扩展初始化
XMLHttpRequest
。这将从服务器异步获取资源。因为请求是异步的,所以它是非阻塞的。结果,页面在AJAX请求期间继续加载。当请求完成时,调用该函数。此时已创建了