chrome扩展名不会在当前窗口中附加文本

时间:2014-04-02 12:40:10

标签: javascript jquery google-chrome-extension

有一段时间了,我一直在尝试创建一个扩展名,它会自动在您所在页面的开头插入一个div。我正在使用这个教程:https://developer.chrome.com/extensions/activeTab页面

本教程中的此代码工作正常,当我点击扩展徽标时,它会将我的页面变为红色。

但如果我更换:

document.body.style.backgroundColor="red"

使用:

$( "body" ).append( "<div>Testing123</div>" );

它不起作用。

text = document.createTextNode("Hello. This is a new node.");
document.body.appendChild(text)

也不起作用

我的清单权限是否错误? 还有另一种方式吗?

我已经在论坛上搜索了很长时间,我尝试过的所有代码都没有用。

1 个答案:

答案 0 :(得分:1)

如果没有包含JQuery-Lib,那么第一种方法就无法工作。 第二个对我很好。您是否查看了页面的底部,导致body.append在最后插入文本。 (也许你正在看顶部?)

经过测试的代码:

<强>的manifest.json

{
  "name": "Page Redder",
  "version": "2.0",
  "permissions": [
    "activeTab"
  ],
  "background": {
    "scripts": ["background.js"],
    "persistent": false
  },
  "browser_action": {
    "default_title": "Make this page red"
  },
  "manifest_version": 2
}

<强> background.js

// Called when the user clicks on the browser action.
chrome.browserAction.onClicked.addListener(function(tab) {
  // No tabs or host permissions needed!
  console.log('Turning ' + tab.url + ' red!');
  chrome.tabs.executeScript({
    code: 'text = document.createTextNode("Hello. This is a new node."); document.body.appendChild(text)'
  });
});