我正在进行Chrome扩展程序,文档this statement中有chrome.tabs.onActivated
。
每当我尝试放置chrome.tabs.onActivated.addListener
时,都会显示Uncaught TypeError: Cannot call method 'addListener' of undefined
。
整个background.html:
<script>
chrome.tabs.onActivated.addListener(function(info) {
var tab = chrome.tabs.get(info.tabId, function(tab) {
localStorage["current_url"] = tab.url;
});
});
</script>
答案 0 :(得分:5)
文档不完整。自Chrome 18起,chrome.tabs.onActiveChanged
替换为chrome.tabs.onActivated
。在Chrome 17中,onActivated
事件不存在。
chrome.tabs.onActivated.addListener( function(info) {
var tabId = info.tabId,
windowId = info.windowId;
});
chrome.tabs.onActiveChanged.addListener( function(tabId, info) {
tabId = tabId; // For comparison
var windowId = info.windowId;
});
我通过在扩展名的上下文中打开控制台并检查chrome.tabs
的键来获取此函数名称。
答案 1 :(得分:1)
您的代码没有问题,它应该可以正常工作。
只需确保您的清单具有标签权限:
<强>的manifest.json 强>
{
"name": "My extension",
"version": "1",
"manifest_version": 2,
"background": {
"scripts": ["background.js"]
},
"permissions": [
"tabs"
]
}
<强> background.js 强>
chrome.tabs.onActivated.addListener(function(info) {
var tab = chrome.tabs.get(info.tabId, function(tab) {
localStorage["current_url"] = tab.url;
});
});