2010-02-10 59 views
2

我想在开发Firefox的扩展时捕获页面加载事件。我为此使用ProgressListeners。我无法使用onLocation更改事件,因为每次用户切换选项卡时都会触发事件。我只想记录他访问过的每一个新页面。 OnProgressChange适用于我,但每页触发多次。我该如何记录每页一个条目。还有其他需要听的活动吗?Firefox扩展:多次调用onProgressChange

在此先感谢..

回答

0

onProgressChange用于有关进度的通知,所以当然,它被称为多次。

当用户切换选项卡时,您看到onLocationChange,因为您将进度侦听器附加到tabbrowser而不是单个选项卡。

您可以尝试listening to (progress) events on all tabs - 首先倾销您获得的所有活动并根据您的需要选择onLocationChangeonStateChange

0

您可以通过在每个镶边窗口中将DOMContentLoaded侦听器附加到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的函数都会加载。