【问题标题】:Setting window.location.href of the current tab in a browser_action Chrome Extension在 browser_action Chrome 扩展中设置当前选项卡的 window.location.href
【发布时间】:2013-07-24 13:58:05
【问题描述】:

我正在尝试将当前选项卡导航到 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 弹出窗口导航到特定页面?

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢,我应该在这个答案中添加 tab.id 为 null 会将其默认为当前选项卡。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-27
    • 1970-01-01
    • 2012-04-21
    • 2016-08-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多