Как я могу динамично загрузить и запустить скрипт JavaScript от консоли JavaScript?

Существует ли острота, которую я мог выполнить в консоли JavaScript, чтобы загрузить и выполнить сценарий JavaScript из удаленного источника?

Я надеялся видеть, был ли хороший способ загрузить этот сценарий и использовать его для экспериментирования в интерактивном режиме на случайных страницах, которые не могут высказаться, загруженный jQuery.

[редактирование: я знаю, что мог динамично создать элемент сценария, но являюсь там более хорошим способом сделать это?]

11
задан jkp 16 July 2010 в 07:23
поделиться

2 ответа

Я написал небольшой скрипт для этого.

var loadjQuery = function(cb){
   if(typeof(jQuery) == 'undefined'){
     var scr = document.createElement('script');
     scr.setAttribute('type', 'text/javascript');
     scr.setAttribute('src', 'http://code.jquery.com/jquery-latest.js');

     if(scr.readyState){
        scr.onreadystatechange = function(){
            if(scr.readyState === 'complete' || scr.readyState === 'loaded'){
               scr.onreadystatechange = null;
               if(cb === 'function'){
                  args = [].slice.call(arguments, 1);
                  cb.apply(this, args);
               }
            }
        };
     }
     else {
        scr.onload = function(){
           if(cb === 'function'){
              args = [].slice.call(arguments, 1);
              cb.apply(this, args);
           }
        };
     }

     var head = document.getElementsByTagName('head')[0];
     head.insertBefore(scr, head.firstChild);  
   }
}

Это работает кроссбраузерно.

edit

Я обновил этот скрипт как функцию с обратным вызовом. Синопсис должен быть таким:

loadjQuery(function(something){
    // execute code after library was loaded & executed
});
10
ответ дан 3 December 2019 в 09:18
поделиться

Ну, это довольно просто - взять длинный сниппет javascript и собрать его в одну строку :)

Этот подход занимает несколько строк, которые можно было бы смешать в один лайнер (но я полагаю, что вы ищете более короткое решение). Вам нужно будет оценить содержимое двух тегов скрипта для загрузки библиотек Google AJAX - вот и все. Однако для получения первой из них вам, возможно, придется сделать вызов.

2
ответ дан 3 December 2019 в 09:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: