How can i use my rand in window name in the following code :
var rand = 185656;
setTimeout("win+rand+2 = window.open('url'+secid , '_blank')",2000);
+rand+ not work
How can i use my rand in window name in the following code :
var rand = 185656;
setTimeout("win+rand+2 = window.open('url'+secid , '_blank')",2000);
+rand+ not work
に文字列を渡さないでくださいsetTimeout
。代わりに関数を渡し、グローバル プロパティを明示的に on に設定しますwindow
。これにより、角括弧表記を使用できるようになります。
setTimeout(function () {
window["win" + rand + "2"] = window.open("url" + secid, "_blank");
}, 2000);
setTimeout
(or )に文字列を渡さない理由は、危険な可能性があるsetInterval
のエイリアスであるためです。eval
現在持っているものは、参照エラーを生成します。これは事実上、これを行うのと似ていますが、これは明らかに機能しません。
"a" + "b" = "c"; // ReferenceError: Invalid left-hand side in assignment
まず、文字列を setTimeout に渡さないでください。代わりにコールバック関数を使用してください。次に、変数は、連結される文字列 (引用符) の外側にある必要があります。
var rand = 185656;
setTimeout(function() {
window["win" + rand + "2"] = window.open('url'+secid , '_blank');
}, 2000);
引用符の外にある必要があります。
setTimeout("win"+rand+"2 = window.open('url'+secid , '_blank')",2000);
String をもう一度「開いて」「閉じる」必要があります。
setTimeout("win" + rand + "2 = window.open('url'" + secid + " , '_blank')",2000);
非常に基本的なことについては、この記事を参照してください。
それとは別に、実行可能コードを渡すべきではありませんsetTimeout
( eval
'd を取得します)。関数参照または無名関数を使用してください。
また、このような変数名を構築することも悪い考えです。そのためのオブジェクトとキーを調べます。
あなたがすることができます:
setTimeout(function(){
var rand = 185656;
window['win' + rand + '2'] = window.open('url'+secid , '_blank'); //creates a global variable by adding a property to the global object
}, 2000);
引用符が問題を起こしている可能性があります
setTimeout("win"+parseInt(rand)+"2 = window.open('url'+secid , '_blank')",2000);
setTimeout("win" + rand + "2 = window.open('url'+secid , '_blank')",2000);