2016-10-13 8 views
0

Iイベントと文字列から関数を作成する必要があり、以下の機能を持っている - これはファンクション文字列の例だろうイベントに文字列から関数を作成

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

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

Iをそれは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の答えは、おそらく以下の私の答えよりも正解だと思います。私は後世のためにそれを残すだろうが、彼はおそらく正しいとして選択されるべきものである。 Javascriptがどのように動作するかではありません




。任意の文字列をJavascriptコードとして評価する場合は、evalを使用する必要があります。しかし、多くの一般的な知恵はeval is evilであることに注意してください。

関連する問題