如何在Chrome扩展程序中更改活动的标签网址

时间:2018-11-14 15:26:17

标签: javascript google-chrome-extension

我正在发现如何开发Chrome扩展程序,但实际上找不到如何更改活动网址。我想从网站上获取信息并打包。

实际上,此代码的前几行有效。我尝试了其他方法来更改url,找不到正确的方法...

$("body").css('background-color', 'pink');
$("body").html('COUCOU');
setTimeout(function(){ 
      var myNewUrl = "http://www.google.com";
      chrome.tabs.update(active, {url: myNewUrl});
}, 2000);;

我的清单是:

{
  "name": "A browser action with a popup that changes the page color",
  "description": "Change the current page color",
  "version": "1.0",
  "permissions": [
    "activeTab", "tabs"
  ],
  "browser_action": {
      "default_title": "Set this page's color.",
      "default_icon": "icon.png",
      "default_popup": "popup.html"
  },
   "content_scripts": [ {
    "js": [ "jquery.js", "background.js" ],
    "matches": [ "http://*/*", "https://*/*"]
  }],
  "manifest_version": 2,
  "content_security_policy": "script-src 'self' https://ajax.googleapis.com; object-src 'self'"
}

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:0)

让我们看看tabs.update方法in the docs的签名:

chrome.tabs.update(integer tabId, object updateProperties, function callback)
     

整数(可选)tabId
  默认为当前窗口的选定标签。

     

对象updateProperties
  [...]

由于您需要当前(选定)标签,因此只需省略 tabId-它被标记为可选。

chrome.tabs.update({url: myNewUrl});

从内容脚本来看,情况有所不同。您don't have access to chrome.tabs API

但是您可以简单地更改document的属性,因为您已经处于活动页面的上下文中:

document.location = myNewUrl;