2013-08-05 3 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

내 확장 프로그램에서 사용자가 동일한 탭에서 새 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