[英]Chrome extension get url of newly selected tab
我有一个扩展,每次使用chrome.tabs.onUpdated事件监听器更改网页时都会检测到。 此事件侦听器中的代码根据页面URL执行某些任务。 我还想在从一个选项卡切换到另一个选项卡时执行这些任务,但这并不会激活chrome.tabs.onUpdated事件侦听器,因此我会使用chrome.tabs.onActivated监听选项卡更改。
问题是使用chrome.tabs.onActivated没有给我我刚刚切换到的选项卡的URL,这是我需要的。 任何人都可以帮我吗?
谢谢
除了 chrome.tabs.onUpdated
,你已经在使用您的其他功能(你上面的描述)事件,你也可以使用chrome.tabs.get
方法来获取tabId
从onActivated
的事件对象,然后通过一个功能。 但是,在这种情况下,恕我直言选项2对你来说是更好的选择:
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab){ //... whatever other stuff you were doing anyway }); chrome.tabs.onActivated.addListener(function(evt){ chrome.tabs.get(evt.tabId, function(tab){ alert(tab.url); //the URL you asked for in *THIS QUESTION* }); });
onUpdated
事件一次(更好): 在同一事件中,同时处理您的其他内容和您正在寻找的内容:
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab){ //... whatever other stuff you were doing anyway chrome.tabs.getSelected(null, function(tab) { alert(tab.url); //the URL you asked for in *THIS QUESTION* }); });
。
你的manifest.json
文件应该有“ tabs权限”:
{ "name": "My extension", ... "permissions": [ "tabs" ], ... }
你有正确的想法使用chrome.tabs.onActivated。 当您获得onActivated的事件时,您还应该获取activeInfo对象,该对象应包含选项卡ID。 有了这个,你可以执行chrome.tabs.get(),传入该选项卡ID,传递给chrome.tabs.get()回调的选项卡对象应包含URL(但请注意,您需要“选项卡” “清单中的权限以获取URL”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.