2013-08-05 40 views
1

我正在使用Google擴展程序代碼,並試圖收聽chrome.webNavigation.onTabReplaced活動,但onTabReplaced活動永遠不會被解僱。chrome.webNavigation.onTabReplaced not firing

我使用的是Chrome 30.0.1587.2版Canary(Windows 7)。

這是我的清單文件的外觀。任何幫助將不勝感激。

manifest.json的:

{ 
    "manifest_version": 2, 
    "name": "abcdef", 
    "description": "abcdef", 
    "version": "0.1", 
    "permissions": [ 
     "tabs", 
     "webNavigation", 
     "background", 
     "storage", 
     "<all_urls>" 
    ], 
    "background": { 
     "scripts": ["bg.js"] 
    } 
} 

bg.js:

chrome.webNavigation.onTabReplaced.addListener(function (details) { 
    // This event is not working in chrome. 
    console.log('webNavigation.onTabReplaced-- old tab id: ' +details.replacedTabId +' new Tab Id ' + details.tabId); 
}); 

回答

3

onTabReplaced事件只有prerendered標籤被替換解僱。如果要檢測何時加載了新文檔,請使用chrome.webNavigation.onCommitted事件。

+0

在我的擴展中,如果用戶在同一個Tab中鍵入新的URL,我想檢索舊標籤Id,該標籤由新標籤ID替換。這樣我可以保持我的TabUrlsAssociation [tabId] = URL集合是最新的。如果webNavigation.onTabReplaced不正確的事件比哪個事件應該給我兩個標籤ID?類似的事件chrome.tabs.onReplaced也似乎無法正常工作。 – apdev

+0

如果用戶導航到其他頁面,則「tabId」不會更改。 –

+0

如果Url更改,我會看到不同的標識ID。在這裏解釋更多與問題相關的細節。 https://code.google.com/p/chromium/issues/detail?id=226180 – apdev