5

我从谷歌文档开始使用 hello world 应用程序来编写 chrome 扩展。http://code.google.com/chrome/extensions/getstarted.html

我只是将 popup.js 修改为:

var span = document.createElement("span");
span.innerHTML = "<b>blah</b>";
alert(document.head);
alert(document.body);
document.body.appendChild(span);

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

4

2 回答 2

3

弹出脚本运行时,DOM 还不存在。您需要DOMContentLoaded在弹出脚本中监听一个事件。

像这样的东西会起作用:

  document.addEventListener('DOMContentLoaded', function(event) {
    console.log(document.body);
  });
于 2018-06-29T23:43:40.563 回答
2

当输入结束脚本标签时,直接评估相应的代码。

由于background.js被加载在头部,<body>不存在(还)。因此,document.bodynull

于 2012-04-21T21:06:50.747 回答