1

我正在使用WebBrowser控件爲Windows手機開發瀏覽器應用程序。我試圖使用下面的代碼實現自動滾動到底部。它工作正常,但是當頁面在document.body.scrollHeight在有條件的支票放大當放大時平滑自動滾動到底部JavaScript

if (document.body.scrollHeight > (document.documentElement.scrollTop + window.innerHeight))

總是大於導致函數被調用不停和永遠達不到終止clearTimeout(timeOutDown)

var timeOutDown; 
function scrollToBottom() 
{ 
    clearTimeout(timeOut); 
    if (document.body.scrollHeight > (document.documentElement.scrollTop + window.innerHeight)) 
    { 
     window.scrollBy(0, 100); 
     window.external.notify(String(window.innerHeight)); 
     timeOutDown=setTimeout('scrollToBottom()',10); 
    } 
    else 
    { 
     clearTimeout(timeOutDown); 
    } 
} 

考慮到用戶可以放大/縮小頁面,正確的方法是什麼?

回答

2

想通了,只是用window.pageYOffset代替document.documentElement.scrollTop。所以,有條件的聲明變得

if (document.body.scrollHeight > (window.pageYOffset + window.innerHeight))

這將變焦倍率的照顧。

+0

接受你自己的答案不是禁忌!你沒有得到它的代表。當你這樣做時,未來的訪問者清楚地知道這是正確的答案。 – Michal