2017-09-29 4 views
1

実際にスクリプトである文字列を含むオブジェクトがあります。オブジェクト内に文字列として保存されたスクリプトを実行します。

forms = { 
    "528": { 
     "thankyou_page_url": "", 
     "external_url": "http:\/\/example.com", 
     "use_external_url": "on", 
     "open_in_new_tab": "", 
     "after_sent_script": "alert('test script');" 
    }, 
}; 

私は別の関数内で、after_sent_scriptからalert機能を実行したいです。このようなもの:

jQuery(document).ready(function() { 
    if (form.after_sent_script) { 
     form.after_sent_script; 
    } 
}); 

これはもちろん動作しません。

はどのようにそれを行うことができますか?

+0

、文字列ではなくhttp://jsfiddle.net/29sVC/1299/ – Lixus

+1

を使用することができますevalをしようとしました – Amit

+0

ありがとうAmit、それは動作します! :) – yuvalsab

答えて

1

あなたは関数としてそれを保存する必要がeval function

jQuery(document).ready(function() { 
    if (form.after_sent_script) { 
     eval(form.after_sent_script); 
    } 
}); 
1

evalを使用できますが、なぜevalを使用するのが慎重であるべきかを読むことができます。

var forms = { 
 
    "528": { 
 
     "thankyou_page_url": "", 
 
     "external_url": "http:\/\/example.com", 
 
     "use_external_url": "on", 
 
     "open_in_new_tab": "", 
 
     "after_sent_script": "alert('test script');" 
 
    }, 
 
}; 
 

 
eval(forms['528']['after_sent_script']);

関連する問題