Существует ли острота, которую я мог выполнить в консоли JavaScript, чтобы загрузить и выполнить сценарий JavaScript из удаленного источника?
Я надеялся видеть, был ли хороший способ загрузить этот сценарий и использовать его для экспериментирования в интерактивном режиме на случайных страницах, которые не могут высказаться, загруженный jQuery.
[редактирование: я знаю, что мог динамично создать элемент сценария, но являюсь там более хорошим способом сделать это?]
Я написал небольшой скрипт для этого.
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
});
Ну, это довольно просто - взять длинный сниппет javascript и собрать его в одну строку :)
Этот подход занимает несколько строк, которые можно было бы смешать в один лайнер (но я полагаю, что вы ищете более короткое решение). Вам нужно будет оценить содержимое двух тегов скрипта для загрузки библиотек Google AJAX - вот и все. Однако для получения первой из них вам, возможно, придется сделать вызов.