2009-10-06 69 views
0

我正在寫一個Firefox插件和大部分的時間用編程方式確定的DOM元素的「滾動」監聽器添加到

document.addEventListener("scroll", scrollListener, false); 

的作品就好了。但是在cuil.com上不起作用。基本上任何具有不滾動頁眉或頁腳的站點都會導致上述代碼出現問題。我如何確定添加事件偵聽器的元素?

回答

0

使用

document.addEventListener("scroll", scrollListener, true); 

作品。事件監聽器被調用。我仍然得到根元素來獲取滾動值。在我的情況下,我有一個開始的後代元素。無論如何,這是我在onScroll函數中使用的代碼的一部分。

if(!x.scrollObj){ 
x.scrollObj = x.doc; 
var scrollObj = x.bElem.parentNode; 
while(scrollObj && scrollObj.nodeName != 'BODY'){ 
    var overflowY = x.doc.defaultView.getComputedStyle(scrollObj, null).overflowY; 
    if( overflowY == 'auto' || overflowY == 'scroll'){ 
    x.scrollObj = scrollObj; 
    break; 
    } 
    scrollObj = scrollObj.parentNode; 
} 
} 

var w = x.doc.defaultView; 
var scrollY = w.scrollY, scrollHeight = x.doc.body.scrollHeight; 
if(x.scrollObj&& x.scrollObj != x.doc){ 
scrollY = x.scrollObj.scrollTop; 
scrollHeight = x.scrollObj.scrollHeight; 
} 

我曾試圖建立onScroll功能之前確定scrollObj,但在cuil.com,但實際上後來成立了溢出。

相關問題