Javascript → Как подключить javascript файл из своего js скрипта

03.08.2011

Пример подключения скрипта http://example.com/script.js:

Native javascript

var script = document.createElement('script');
script.src = 'http://example.com/script.js';
document.getElementsByTagName('head')[0].appendChild(script);
alert('script loaded');

jQuery:

$.getScript('http://example.com/script.js', function(){
  alert('script loaded');
});
Похожие записи

Комментарии

Игорь
20.10.2011, 22:28

Классная кстати фишка! Я её теперь постоянно пользуюсь.
создаю файл где пишу

jQuery(document).ready(function ($) { 
   $.getScript("/sites/all/themes/mytheme/js/ready.js");       
})(jQuery);

Ведь все надеюсь включают объединение файлов js и css для более быстрой загрузке сайта
А когда надо внести изменения или что то добавить и посмотреть результат тут же - то уже не надо будет очишать кеш или отключать объединение - просто нажать обновить страницу и новый код уже работает!

Игорь
21.10.2011, 09:56

А разве на работающем сайте вы не вносите мелкие поправки, дополнения?

document.getElementsByTagName('head')[0].appendChild(script);

document.head.appendChild(script); тоже работает

Спасибо Вам огромное,хоть понятно стало)

Павел
06.11.2013, 20:23

Пример на Native javascript не совсем может оказаться рабочим. Например если в подключаемом скрипте написать функцию и попробовать непосредственно после document.getElementsByTagName('head')[0].appendChild(script); её вызвать, то скорее всего Вы получите сообщение об ошибке ReferenceError: function is not defined
Естественно до алерта нужно вызвать свою функцию.

Вероятно это происходит из-за того что после добавления в заголовок страницы скрипта, подгрузка происходит асинхронно, почему неизвестно.

А если вызвать к примеру $("head").append($('')); то подгружается нормально синхронно.

Павел
06.11.2013, 20:36

$("head").append($('<s c r i p t type="text/javascript" src="'+url+'"></s c r i p t>'));
вырезалось

Гость
15.05.2017, 15:06

Почему бы не использовать document.write('<script src="/files/jquery.min.js"><\/script>'); ?

Тем не менее, вот так работает, а через DOM - нет:

for (n=0; n<100; n++) {
	document.write('<script src="'+n+'.js"></script\>');
	document.write('<script src="obr.js"></script\>');
	// obr.js обрабатывает переменную,  
	// разные значения которой записаны в файлах 0.js ... 99.js
}

Добавить комментарий