0

这个想法很简单。打开一个窗口,然后在该新窗口上调用 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/");
});
4

1 回答 1

0

首先,请确保您已获得对页面进行操作的主机权限

如果您总是想在特定页面上运行脚本,只需通过清单文件注册即可使用内容脚本:

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

如果你想为新页面动态执行内容脚本,你应该使用chrome.tabs.create方法打开新标签,并在回调中插入脚本。这些方法只能在扩展的进程中使用,因此请确保代码在后台/事件/弹出/选项/..页面上运行。

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);
        }
    });
});
于 2013-06-28T07:29:14.843 回答