簡體   English   中英

Webkit Javascript導致頁面跳轉

[英]Webkit Javascript Causes Page Jumping

使用此代碼

v=new Date();
var bxx=document.getElementById('bxx');
function t(){
    n=new Date();
    ss={time};
    s=ss-Math.round((n.getTime()-v.getTime())/1000.);
    m=0;h=0;
    if(s<0){
        bxx.innerHTML='<a ';
    }else{
        if(s>59){m=Math.floor(s/60);s=s-m*60;}
        if(m>59){h=Math.floor(m/60);m=m-h*60;}
        if(s<10){s="0"+s}
        if(m<10){m="0"+m}
        bxx.innerHTML=h+':'+m+':'+s+'<br>{name}</a>';
    }
    window.setTimeout("t();",999);
}
t();

每當調用t()時,頁面就會跳到屏幕頂部。 有任何想法嗎?

{}是服務器解析的變量,但是它們應該引起任何問題。

跳轉是指滾動到頁面底部的頁面突然跳轉到頁面頂部

我不知道跳躍的問題,但是該代碼有兩個問題:

1)希望所有這些變量都在您未顯示的地方聲明? (如果沒有,那么您將成為“隱式全球性恐怖”的獵物,我建議您避免使用。)

2)此代碼:

bxx.innerHTML='<a ';

...要求瀏覽器解析無效的HTML片段。

3)像這樣的代碼:

bxx.innerHTML=h+':'+m+':'+s+'<br>{name}</a>';

...因為h和此類是數字,所以您最終得到1:23:45<br>name</a>

innerHTML屬性不能包含部分元素標簽,因為它表示元素的全部內容,並且元素不能像這樣相互交叉(DOM是一棵樹,而不是編織)。

您需要修改代碼,以便始終將完整bxx.innerHTML a標記寫入bxx.innerHTML屬性。

一旦執行此操作,如果元素的先前內容與新內容具有不同的尺寸,則可能仍會引起一些小的跳躍。 您可以使用CSS(具有寬度和高度等的內聯塊元素)緩解這種情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM