4

我正在尝试将当前选项卡导航到 browser_action Chrome 扩展中的 URL,以响应用户输入的关键字。最好的方法是什么?

首先我尝试了一个简单的 javascript 表单,但我意识到 javascript 没有在当前选项卡上设置 window.location.href,因为我没有使用 executeScript。

到目前为止,我发现最好的方法是使用 executeScript:

chrome.tabs.executeScript(null, {code:"window.location.href = '" + url + "';"});

这还涉及向清单添加权限:

"permissions": [
  "tabs",
  "http://*/",
  "https://*/"
],

问题是:

  1. 此方法不适用于新标签页。(添加“chrome://*/”会破坏扩展并阻止其安装)

  2. 它要求为每种协议类型显式设置权限,否则扩展将无法在某些类型的页面上运行。

是否有更强大的方法可以让 Chrome 选项卡从 browser_action 弹出窗口将打开的选项卡导航到特定页面?

4

1 回答 1

6

不需要内容脚本或主机权限。只需使用chrome.tabs.updatetabs不需要许可):

chrome.browserAction.onClicked.addListener(function(tab) {
    chrome.tabs.update(tab.id, {
        url: url
    });
});
于 2013-07-24T14:01:22.967 回答