2011-09-12 105 views
0

我有一個字符串變量js_inject,我正在尋找一種方法來通過字符串調用js_inject()函數。有沒有什麼辦法可以做到這一點,而不是下面的例子?我非常希望能夠在沒有條件的情況下做到這一點。通過字符串調用函數?

var myString = 'js_inject'; 

moderator(stringVar){ 
    if(stringVar == 'js_inject'){ 
    js_inject(); 
    } 
} 

moderator(myString); 
+0

你有沒有嘗試'的eval(MyString的)'?我的'myString ='js_inject()''在哪裏。這可能過於簡單,但應該起作用。 –

+0

除了eval是邪惡的。一個腳本kiddy可以很好地改變這個javascript代碼並殺死他自己的瀏覽器... – GolezTrol

+0

@GolezTrol *一個腳本kiddy可以很好地改變這個javascript代碼並殺死他自己的瀏覽器* ...看起來像一個強有力的論點,贊成' eval' – KooiInc

回答

2

如果這是一個全局函數,你可以寫window[stringVar]()

2

您在全球範圍內聲明函數成爲window對象的一部分,所以你應該能夠調用此:

window['js_inject']();