2013-11-26 1 views
0

2 분과 같이 특정 입력 필드 (pass_phrase)의 값이 변경되지 않은 경우 HTML 페이지를 다시로드해야합니다. 나는 JS에 익숙하지 않고 아래의 코드가 지금까지 나와 함께 나온 것이다. 그러나 그것은 효과가 없습니다. 일부 값을 입력하면 페이지가 다시로드되지 않습니다. 올바른 해결책 또는 코드 관련 문제를 지적하십시오. 감사.JavaScript를 사용하는 조건에서 HTML 페이지를 다시로드하십시오.

JS는 : this 문서에서

location.reload(); 

봐 :

var v1 = '', v2 = '';   
    function GetMyValues(){   
     setTimeout(function() { 
      v1 = document.getElementById('pass_phrase').value; 
     }, 1000*60*1);   
     setTimeout(function() { 
      v2 = document.getElementById('pass_phrase').value; 
     }, 1000*60*2);   
    } 

    if (v1 == v2 && v1 != '') { 
     window.location="https://domain-name.com"; 
    } else { 
     setTimeout('GetMyValues()', 1000*60*1); 
    } 

답변

0

페이지로드시에만 v1v2 만 확인하면됩니다. 당신은 당신이 (시간 초과 후) 그것을 필요로 할 때 그것을 확인해야합니다

var v1 = '', v2 = ''; 

function GetMyValues() { 

    setTimeout(function() { 
     v1 = document.getElementById('pass_phrase').value; 
    }, 1000 * 60 * 1); 

    setTimeout(function() { 
     v2 = document.getElementById('pass_phrase').value; 
     // Check and reload 
     if (v1 == v2 && v1 != '') { 
      window.location = "https://domain-name.com"; 
      // or location.reload(); if it is really a reload of the same page. 
     } 
    }, 1000 * 60 * 2); 

} 

setTimeout(GetMyValues, 1000 * 60 * 1); 

를이 3 초 후를 확인 있지만, 1 분 후 GetMyValues을 트리거하고 2 분 2 개 값을 비교하기 위해 대기보다 때문이다. 당신이 값을 페이지로드 후 2 분 확인하려면 당신은 변경해야합니다 :

setTimeout(GetMyValues, 1000 * 60 * 1); 

그냥하기 :

getMyValues(); 
0

나는 당신이 당신의 페이지를 다시로드하는 대신 사용할 수 있습니다 생각합니다.

+1

전화 할 경우'location.reload (참)'다음 브라우저를 말할 것이다 캐시를 건너 뛰고 페이지의 새로운 복사본을 가져옵니다. –

관련 문제