2012-12-03 2 views
1

이 아주 기본적인 스크립트는 페이지에 사용하는 3 가지 변수를 생성합니다. 오늘 날짜는 기본 형식, 오늘부터 +90 일, 오늘부터 +120 일입니다. :크롬 문제가있는 자바 스크립트 setDate

그것은 그 변수는 "정의"와 콘솔 출력이로 올 크롬에서 그러나, 파이어 폭스와 IE에서 잘 작동 "catch되지 않은 형식 오류 : '하여 setDate'어떤 방법했다 거짓 객체"여기

내 자바 스크립트입니다

var today = new Date(); 
var rg = (today.getMonth()+1) + "/" + today.getDate() + "/" + today.getFullYear(); 

var closed = new Date(); 
closed.setDate(today.getDate()+90); 
var cl = (closed.getMonth()+1) + "/" + closed.getDate() + "/" + closed.getFullYear(); 

var expire = new Date(); 
expire.setDate(today.getDate()+120); 
var ex = (expire.getMonth()+1) + "/" + expire.getDate() + "/" + expire.getFullYear(); 
+0

은 크롬에서 [여기] 미세 (http://jsfiddle.net/Jf4Vv/) 작동하는 것으로 나타납니다. 작동하지 않는 경우 어떤 버전의 Chrome을 사용하고 계십니까? – Snuffleupagus

+0

"잡히지 않는 TypeError : 객체 false는 'setDate'메서드가 없습니다. --- 어떤 라인? – zerkms

+0

나를 위해 Chrome에서 작동합니다 (Mac OS와 Windows 모두에서) – kinakuta

답변

1

closedwindow 개체에 대한 예약 된 이름입니다. (here) 글로벌 공간에서이 변수를 실행하면 모든 변수는 window 아래에 저장되므로 브라우저가 window.closed이어야한다고 생각하는 것과 충돌하게됩니다.

var closed = new Date();을 새 이름으로 변경하거나 @KingKongFrog가 클로저를 통해 새 범위에 배치하도록 제안하십시오.

+0

굉장, 고마워! – Svet

1

익명 함수에 넣어이 시도는

(function() { 
    var today = new Date(); 
    var rg = (today.getMonth()+1) + "/" + today.getDate() + "/" + today.getFullYear(); 

    var closed = new Date(); 
    closed.setDate(today.getDate()+90); 
    var cl = (closed.getMonth()+1) + "/" + closed.getDate() + "/" + closed.getFullYear(); 

    var expire = new Date(); 
    expire.setDate(today.getDate()+120); 
    var ex = (expire.getMonth()+1) + "/" + expire.getDate() + "/" + expire.getFullYear(); 
})(); 
관련 문제