xandeadx.ru Блог музицирующего веб-девелопера

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

Опубликовано в

Пример подключения скрипта 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');
});
Похожие записи

Комментарии RSS

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

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

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

для разработчика лучше вообще отключить агрегацию и любое кеширование
http://xandeadx.ru/blog/drupal/156

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

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

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

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

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

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

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

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

Пригодилось

Павел, ты красавчик. Спасибо.

Оставить комментарий

Содержимое этого поля является приватным и не будет отображаться публично. Если у вас есть аккаунт в Gravatar, привязанный к этому e-mail адресу, то он будет использован для отображения аватара.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступные HTML теги: <a> <i> <b> <strong> <code> <ul> <ol> <li> <blockquote> <em> <s>
  • Строки и параграфы переносятся автоматически.
  • Подсветка кода осуществляется с помощью тегов: <code>, <css>, <html>, <ini>, <javascript>, <sql>, <php>. Поддерживаемые стили выделения кода: <foo>, [foo].

Подробнее о форматировании