我在chrome 31.0.1650.57上进行了browserAction扩展测试。当用户单击扩展图标时,我想获取活动的标签URL,保存并稍后使用。
使用标签权限时,我能够做到这一点。但是,此权限具有很多功能(我不需要),并且用户对此表示抱怨。
我按照文章切换到activeTab权限http://developer.chrome.com/extensions/activeTab,但它仅在没有弹出窗口时有效。如您在make_page_red示例中所见。
chrome.browserAction.onClicked.addListener(function(tab){ //不需要标签或主机权限! console.log(“★tab.url”,tab.url); });
您可以通过更改make_page_red示例清单文件进行检查,以添加如下所示的默认弹出窗口:
{ “ name”:“ Page Redder”, “ description”:“将当前页面设为红色”, “ version”:“ 2.0”, “权限”:[ “ activeTab” ], “背景”: { “ scripts”:[“ background.js”], “持续”:假 }, “ browser_action”:{ “ default_title”:“将此页面设为红色”, “ default_popup”:“ popup.html”←------------------- }, “ manifest_version”:2 }
现在,因为我有一个默认弹出窗口,所以不再调用browserAction.onClicked侦听器。
如何获得当前标签页的网址,并且仍然可以打开弹出窗口?
谢谢
不再调用browserAction.onClicked(如您所述),因此只需跳过以下内容:
popup.js
:
chrome.tabs.query({active:true,currentWindow:true},function(tabArray){
console.log(tabArray[0].url);
});
当然,有popup.html
负载popup.js
用script
标签。(而且我不确定您的后台脚本在做什么。)
编辑:
除上述内容外,我的扩展程序还有另外两个文件。manifest.json
是从您的副本中复制的,但是删除了背景部分。唯一的其他文件是popup.html
(来自内存,请耐心等待):
<html><body><script type="text/javascript" src="popup.js"></script></body></html>
要查看控制台,请单击浏览器操作,这将弹出一个50像素的正方形窗口。右键单击“检查元素”,然后单击控制台以查看URL。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句