Chrome扩展程序不会一直执行

时间:2013-06-28 02:42:35

标签: google-chrome-extension

这个想法很简单。打开一个窗口,然后在该新窗口上调用chrome.tabs.executeScript。

不幸的是,除了打开一个新窗口之外它什么也没做。

function openc(url) {
  window.open(url);
  chrome.tabs.executeScript(null, {file: "removeContent.js"});
  console.log("hi");
}

document.addEventListener('DOMContentLoaded', function () {
  openc("http://www.asdf.com/");
});

1 个答案:

答案 0 :(得分:0)

首先,请确保您已在页面上运行host permissions

如果您始终希望在特定页面上运行脚本,则只需使用内容脚本registration via the manifest file

  "content_scripts": [
    {
      "matches": ["http://example.com/*"],
      "js": ["open-asdf.js"]
    },
    {
      "matches": ["http://www.asdf.com/*"],
      "js": ["removeContent.js"]
    }
  ],

如果要为新页面动态执行内容脚本,则应使用chrome.tabs.create方法打开新选项卡,然后在回调中插入脚本。这些方法只能在扩展程序中使用,因此请确保代码在background / event / popup / options / ..页面上运行。

chrome.tabs.create({
    url: 'http://www.asdf.com/'
}, function(tab) {
    chrome.tabs.executeScript(tab.id, {file: "removeContent.js"}, function() {
        if (chrome.runtime.lastError) {
            console.error(chrome.runtime.lastError.message);
        }
    });
});