Firefox扩展:onProgressChange多次调用

时间:2010-02-10 22:20:43

标签: firefox firefox-addon

我正在尝试在为firefox开发扩展时捕获页面加载事件。我正在使用ProgressListeners。我不能使用onLocation更改事件,因为它会在每次用户切换选项卡时触发事件。我只想记录他访问过的每个新页面。 OnProgressChange适用于我,但每页多次触发。如何为每页一个条目记录此项。还有其他需要听的事吗?

提前致谢..

2 个答案:

答案 0 :(得分:0)

onProgressChange用于有关进度的通知,因此当然会多次调用。

当用户切换标签时,您会看到onLocationChange,因为您将进度监听器附加到tabbrowser,而不是单个标签页。

您可以尝试listening to (progress) events on all tabs - 首先转储您获得的所有活动,然后根据您的需要选择onLocationChangeonStateChange

答案 1 :(得分:0)

您可以通过将DOMContentLoaded侦听器附加到每个Chrome窗口中的appcontent元素来捕获页面加载。像这样:

var LoadTest = {
    // chrome window loaded
    onload: function() {
        var appContent = document.getElementById("appcontent");
        appContent.addEventListener("DOMContentLoaded", function(e) {
            alert("page loaded");
        }, true);
    }
};

window.addEventListener("load", LoadTest.onload, false);

加载新的Chrome窗口时,将执行LoadTest.onload方法。每次访问页面或打开选项卡时,都会加载侦听DOMContentLoaded的函数。