2

尝试使用 chrome 扩展后台脚本捕获 url chrome 浏览器。

我尝试下面的代码适用于新的 url 更改,但不适用于标签更改

背景.js

chrome.tabs.getSelected(null, function(tab) {
           chrome.extension.getBackgroundPage().console.log(tab.url);
});

清单.json

{
  "manifest_version": 2,

  "name": "My Test Extension",
  "description": "This extension demonstrates.",
  "version": "1.0",

  "browser_action": {
    "default_icon": "icon.png",
    "default_popup": "popup.html"
  },
  "background": {
    "scripts": ["background.js"]
  },
  "permissions": [
      "tabs",
       "activeTab",
        "http://*/*",
        "https://*/*"
  ]
}

安装时控制台日志打印一次,之后没有响应。

我想捕获当前选项卡的 URL ...当用户更改浏览器选项卡或创建新选项卡时,我需要在后台捕获当前浏览器选项卡的 URL,而无需单击扩展图标。

获取 URL 后,我需要在 URL 末尾附加一个查询字符串。

例如

当前选项卡 url:stackoverflow.com 扩展更改/附加 url:stackoverflow.com/question/java

4

3 回答 3

1

下面的代码按预期工作正常

chrome.tabs.onUpdated.addListener( function( tabId,  changeInfo,  tab) {
       chrome.extension.getBackgroundPage().console.log(tab.url);
       if(tab.url=="https://www.google.co.in/"){
            chrome.tabs.update(tab.id, {url: 'https://www.yahoo.com/'});
       }
});

让我知道评论

于 2013-06-17T13:05:44.150 回答
0

监听 onUpdated 事件。

chrome.tabs.onUpdated.addListener(function(integer tabId, object changeInfo, Tab tab) {...});

http://developer.chrome.com/extensions/tabs.html#event-onUpdated

于 2013-06-17T12:24:58.820 回答
0

1)活动选项卡更改时的事件:

chrome.tabs.onActivated.addListener(function(object activeInfo) {...});

从文档

当窗口中的活动选项卡更改时触发。请注意,在此事件触发时可能未设置选项卡的 URL,但您可以在设置 URL 时侦听 onUpdated 事件以得到通知。

2) 最有可能的是,您还需要监听当前焦点窗口更改时触发的chrome.windows.onFocusChanged事件。

于 2013-06-17T12:38:54.233 回答