如何在页面重新加载后从内容脚本 access/bind 到 DOM?

How to access/bind to DOM from content script after page reloads?

我有一个 chrome 扩展,其中页面从内容脚本中重新加载。内容脚本正在 运行 使用我的 popup.js 在当前活动选项卡上的 chrome.tabs.executeScript()

重新加载后,我无法从内容脚本绑定到 window 的滚动事件。有没有办法重新捕获重新加载的 DOM 以绑定到滚动事件?

更新:

popup.js

chrome.tabs.executeScript(null, { file: 'sendArticleLength.js', allFrames: true}, function(result) {
    count = result;                 
    chrome.tabs.reload(targetTabID, function() {
    chrome.tabs.executeScript({file: 'sendRemainingTime.js', allFrames: true}, function(){                  
            chrome.tabs.sendMessage(targetTabID, {wordcount:count});
    });
});

sendRemainingTime.js

chrome.runtime.onMessage.addListener(function(request, sender, sendResponse){
    if(request.wordcount) {
        wc = request.wordcount;
        window.onscroll = function(){
            alert('scrolled!');
        }
    }
});

在 sendRemainingTime.js 中,我想在 popup.js 中触发的重新加载完成后绑定到 onscroll 事件。但目前,onscroll 在重新加载之前绑定。

更新:

正如调试显示的那样,真正的问题是其他问题 :-) 即,使用 var location = 分配实际上重新加载了页面以及 chrome.tabs.reload 立即执行其回调而不等待的事实实际重新加载的页面,因此 chrome.tabs.onUpdated 侦听器解决了问题。