在browser_action Chrome扩展程序中设置当前选项卡的window.location.href

时间:2013-07-24 13:58:05

标签: javascript google-chrome google-chrome-extension

我正在尝试将当前标签导航到browser_action Chrome扩展程序中的网址,以响应用户输入的关键字。最好的方法是什么?

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

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

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

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

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

问题在于:

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

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

  3. 是否有更强大的方法可以使Chrome浏览器选项卡从browser_action弹出框中将打开的标签导航到特定页面?

1 个答案:

答案 0 :(得分:5)

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

chrome.browserAction.onClicked.addListener(function(tab) {
    chrome.tabs.update(tab.id, {
        url: url
    });
});