1

この非常に基本的なスクリプトは、ページで使用する 3 つの変数を作成します。優先形式の今日の日付、今日から +90 日後の日付、今日から +120 日後の日付です。

Firefox と IE では問題なく動作しますが、Chrome ではこれらの変数が「未定義」として表示され、コンソールに「Uncaught TypeError: Object false has no method 'setDate'」という出力が表示されます。

これが私のJavaScriptです

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

2 に答える 2

1

closedwindowオブジェクトの予約名です。(こちらを参照) これをグローバル空間で実行しているため、すべての変数は の下windowに格納されているため、ブラウザーが想定するものと衝突していwindow.closedます。

単純var closed = new Date();に新しい名前に変更するか、@KingKongFrog が示唆するように、クロージャーを介して新しいスコープに配置します。

于 2012-12-03T21:17:29.123 に答える
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();
})();
于 2012-12-03T21:18:12.713 に答える