2016-10-13 54 views
0

我有以下功能應該從事件字符串創建功能 -從字符串的事件創建功能

function getFuncDefEvent(jsFunctionString){ 
    if(jsFunctionString!= undefined) { 
     return function(event){jsFunctionString}; 
    } 
} 

這將是一個函數的字符串的一個例子:

jsFunctionString = "doSomething(event); doSomethingElse(); 

我已將它附加到onclick事件,但它似乎沒有觸發任何事件。我錯過了什麼嗎?

+0

你期望String能做什麼?我懷疑你需要爲此使用['eval()'](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/eval),但它確實存在安全問題與不可信的代碼(以及任何用戶可訪問,用戶可編輯的代碼是或不應該是不可信的)。可能的重複:http://stackoverflow.com/questions/7650071/is-there-a-way-to-create-a-function-from-a-string-with-javascript –

回答

3

這不是你如何從一個字符串創建一個函數。您需要使用Function constructor

return new Function(['event'], jsFunctionString); 
0

編輯: 經過審查後,我覺得Barmar的答案很可能比我的回答如下更正確。我會把它留給子孫後代,但他可能是應該選擇正確的那個。




這不是Java腳本是如何工作的。如果你想評估任意字符串作爲Javascript代碼,你將不得不使用eval。但請注意,大部分流行的智慧是eval is evil