2011-12-06 9 views
0

Imは現在、企業Wikiの古い記事から新しい記事に自動的にリダイレクトするための遅延を伴う単純なjavascriptリダイレクト(読み込み時に呼び出される)を使用しています。しかし、Idはユーザーがautoredirectを停止できるようにして、必要に応じて古いデータにアクセスできるようにします。遅延を伴うjavascriptリダイレクト

このコードを修正するにはどうすればよいですか?

<script type="text/javascript"> 
var h = setTimeout("iiredirect()", 2000); 
function iiredirect() { window.location = "that new location"; } 
</script> 
+1

iiredirect()を 'iiredirect'に変更してください。 –

+0

@PeterOlson:なぜですか?いずれもうまくいくようです:http://jsfiddle.net/simtali/P2ehw/ – Daniel

+0

@Danielどちらも動作しますが、文字列パラメータを 'setTimeout'または' setInterval'に渡すと、文字列中のコードの評価が行われます。関数を直接渡すことができれば不要です。 –

答えて

2

と仮定すると、buttonは、お客様のキャンセルリダイレクトボタンへの参照です。

var timeout = setTimeout(function() { 
    window.location = "that new location"; 
}, 2000); 

button.addEventListener('click', function() { 
    clearTimeout(timeout); 
}, false); 
2

clearTimeout(h)それを行う必要があります。これにより、実行中のタイムアウトがキャンセルされます。