Jac*_*ang 4 javascript google-chrome google-chrome-extension
我正在尝试制作一些Google Chrome扩展程序,我想记住最近删除的标签信息.但我遇到了问题.每次我使用方法获取删除的标签信息,如URL,标题等chrome.tabs.get,但有一个错误说'Error during tabs.get: No tab with id'.
我认为这是因为在tabs.get方法获取选项卡信息之前已删除选项卡.但是我如何才能获得最近删除的标签网址?
这是我的代码:
chrome.tabs.onRemoved.addListener(getRemovedTabs);
function getRemovedTabs(tabId, removeInfo) {
chrome.tabs.get(tabId, function (tab) {
//do stuffs
});
}
Run Code Online (Sandbox Code Playgroud)
Rob*_*b W 11
在chrome.tabs.onRemoved当标签被触发事件删除,而不是在"它即将遭到移除".删除标签后无法获取有关标签的信息.
必须在删除选项卡之前收集信息.该chrome.tabs.onUpdated活动是最方便的活动:
// Background script
var tabToUrl = {};
chrome.tabs.onUpdated.addListener(function(tabId, changeInfo, tab) {
// Note: this event is fired twice:
// Once with `changeInfo.status` = "loading" and another time with "complete"
tabToUrl[tabId] = tab.url;
});
chrome.tabs.onRemoved.addListener(function(tabId, removeInfo) {
do_stuff_with( tabToUrl[tabId] );
// Remove information for non-existent tab
delete tabToUrl[tabId];
});
Run Code Online (Sandbox Code Playgroud)
显然,您不仅限于在tabToUrl对象中存储URL .每种tab类型都包含原始值(布尔值,整数和字符串),因此存储tab对象不会导致严重的内存消耗.
但是,属性可能不准确,因为onUpdated仅在页面(重新)加载时触发.如果其他属性相关,请确保还将事件侦听器绑定到其他chrome.tab事件.
| 归档时间: |
|
| 查看次数: |
3239 次 |
| 最近记录: |