хорошо, я использую jquery для этого. и это прекрасно работает.
Все, что вам нужно сделать, это сделать ajax-запрос, который возвращает скрипт, а затем оценить скрипт, используя eval
. Вы можете написать свою собственную функцию для этого, но jquery уже имеет несколько хороших подходов.
Для отдельных сценариев функция $.getScript
работает хорошо. По сути, это расширение функции $.ajax
, которое указывает, что вы запрашиваете скрипт. синтаксис такой:
$.getScript('my_script_url',function(){
// do whatever needs to be done after the script loads
alert('my script was asynchroniously loaded');
});
Если у вас есть больше скриптов, которые вы хотите добавить через ajax, у jquery есть отличный способ сделать это:
$.when(
$.getScript("/script_1.js"),
$.getScript("/script_2.js"),
$.getScript("/script_3.js")
// ...
//$.getScript("/script_n.js")
).then(
// on succes
function(){
alert('good to go!');
},
// on failure
function(){
alert('loading failed. one or more scripts encountered a problem :(');
}
);