2011-03-09 4 views
0

이 코드 t()가 호출 될 때마다웹킷 자바 스크립트는 페이지가 화면 상단으로 이동, 페이지 점프

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(); 

를 사용하도록합니다. 어떤 아이디어?

{}은 (는) 서버 구문 분석 변수이지만 문제가 발생해야합니다. 뛰어

, 나는 아래로 스크롤 페이지가 갑자기

+0

여러 브라우저에서 사용해 보셨습니까? * bxx * 요소를 설명해주십시오. –

답변

0

내가 점프 모르는 페이지 상단으로 이동하지만, 그 코드는 문제의 몇 가지를 가지고 있다는 것을 의미 :

1)이 모든 변수가 표시되지 않은 어딘가에 선언 되었으면 좋겠습니까? (당신은 내가 피하는 것이 좋습니다하려는 Horror of Implicit Globals, 먹이 떨어지는 경우 없습니다.)

2)이 코드 :

bxx.innerHTML='<a '; 

를 ... 잘못된 HTML 조각을 구문 분석 브라우저를 요구하고있다 . 이 코드이기 때문에

3) :

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

... h 등과 같은 숫자이고, 그래서 당신은 1:23:45<br>name</a>와 끝까지.

속성은 요소의 전체 내용을 나타내며 요소가 서로 겹칠 수 없기 때문에 부분 요소 태그를 포함 할 수 없습니다 (DOM은 직조가 아닌 트리 임).

완전히 수정 된 a 태그를 bxx.innerHTML 속성에 모두 쓸 수 있도록 코드를 수정해야합니다.

이렇게하면 요소의 이전 콘텐츠가 새 콘텐츠와 다른 차원 인 경우 으로 약간의 점프가 발생할 수 있습니다. CSS (너비와 높이 등의 인라인 블록 요소)를 사용하여이를 완화 할 수 있습니다.

관련 문제