2013-08-30 21 views
2

問題it's很容易的,我需要的setTimeout插入VAR爲在此之後重定向到URL,但問題it's用於從VAR稱爲再導向取值:的Javascript瓦爾在setTimeout的

<script> 
/// Var for redirect 
     var redir="action"; 
/// Set Time for redirect with the until var inside url 
     setTimeout("location.href='?action=cp&load='+action",1500); 
    </script> 

對我來說,問題引號it's因爲我對的setTimeout把這些報價和VAR再導向的把價值我不知道放在哪裏確切

Thank's

+0

字符串是*不* 「插值」。如果可以這樣寫:'setTimeout(「.. load =」+ redir,..)'(注意,這會產生一個新的字符串,然後作爲參數傳遞)。但是,最好是*不*使用setTimeout(string)形式。這是嘰嘰喳喳xD – user2246674

回答

7

這是更好地在你的setTimeout調用中使用匿名函數。這是因爲將使用與eval類似的Function構造函數來構造字符串。此外,使用匿名函數將允許您使用更簡單的方法來連接字符串。

setTimeout(function(){ 
location.href = '?action=cp&load=' + action; 
},1500); 
0

工作示例

<script type="text/javascript"> 
    var action = "redit"; 
    setTimeout(function(){ window.location.href = '?action=cp&load='+action; }, 1500); 
</script> 
+0

雖然這個工程,預先「窗口」。到'location.href'沒有任何區別(並且消耗可能減慢頁面速度或使其更加昂貴的字節)。如果只是一次,那麼字節的差異是不相關的,但它是好的,養成不寫「窗口」的習慣。此外,縮進代碼是一個不錯的主意,因爲它提高了可讀性,並使其更容易進行進一步的更改。 –