我有我的JS代碼一行一個問題:SyntaxError:標識符在數字文字後立即啓動 - setTimeout或連接?
window.setTimeout('window.location.href = "http://holy-war.net/town/alchemist/?w="' + world + ';',2000);
如果世界是包含文本「4IN」(不含引號)的字符串。也許我的串聯已出現莫名其妙壞了,或者你可以甚至不會將一個變量傳遞給setTimeout函數?這是什麼?
我有我的JS代碼一行一個問題:SyntaxError:標識符在數字文字後立即啓動 - setTimeout或連接?
window.setTimeout('window.location.href = "http://holy-war.net/town/alchemist/?w="' + world + ';',2000);
如果世界是包含文本「4IN」(不含引號)的字符串。也許我的串聯已出現莫名其妙壞了,或者你可以甚至不會將一個變量傳遞給setTimeout函數?這是什麼?
是的,你的連接被打破。它將生成代碼
window.location.href = "http://holy-war.net/town/alchemist/?w="4IN;
// ^^^
其中顯示了完全錯誤消息描述的問題。相反:
修正報價
window.setTimeout('window.location.href = "http://holy-war.net/town/alchemist/?w=' + world + '";', 2000);
使用適當的系列化
window.setTimeout('window.location.href = '+JSON.stringify('http://holy-war.net/town/alchemist/?w=' + world) + ';', 2000);
不生成代碼eval
所有,使用函數作爲你應該!
window.setTimeout(function() {
window.location.href = 'http://holy-war.net/town/alchemist/?w=' + world;
}, 2000);
字符串不要傳遞給setTimeout
。使用功能,而不是:
window.setTimeout(function() {
window.location.href = "http://holy-war.net/town/alchemist/?w=" + world;
}, 2000);
謝謝,這工作!反而會從現在開始將功能實現到setTimeout中。 –
哦,我剛剛意識到我是多麼愚蠢,哈哈。但是如果我注意到了,我不會知道在settimeout中使用函數,所以我認爲它有很好的後果x) –