1. Главная
  2. Статьи
  3. Вопрос-Ответ
  4. Новости
  5. Форум
  6. Вики
Вход   Регистрация

Биржа комментариев

СМС рассылки

Партнерские программы

Бесплатное продвижение сайтов

VPS хостинг

Кабель оптом

Качественный контент

Офисная мебель Проспект

Можно ли в JavaScript включить файла в скрипт или файл?

Есть ли в JavaScript что либо подобное, как есть в CSS: @import или PHP include, которое бы позволило в JS файле включить другой JavaScript файл.

В JavaScript нет ничего подобного, что бы позволить включить или импортировать файл в файл в JavaScript, но есть два способа, которые могут это сделать.

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

2. Добавить тег <script> с URL в HTML используемой страницы.
Это определенно лучший метод, так как позволяет загружать скрипты с других сайтов и это стандартный способ подключения скриптов.
Загрузить теги <script></script> можно как в верхней части страницы, так и в любом месте.
Сделать это можно так:

  var head = document.getElementsByTagName('head')[0];
  var script = document.createElement('script');
      script.type = 'text/javascript';
      script.src = 'newJSfile.js';
  head.appendChild(script);

Теперь небольшая проблема, которая может появиться в данной ситуации. Такой способ подключения означает, что Вы удаленно подгружаете скрипт и это может занять время, так как выполнение этого сценария осуществляется асинхронно.
Поэтому, обращение к функции в файле, который мы подгружаем должен быть после его полной загрузки.
Сделать это можно так:

 function loadScript(url, callback)
   {
        // добавляем тег script в head страницы
   var head = document.getElementsByTagName('head')[0];
   var script = document.createElement('script');
   script.type = 'text/javascript';
   script.src = url;
        // Вызываем функцию после загрузки файла
        // Есть два способа это сделать:
   script.onreadystatechange = callback;
   script.onload = callback;
        // Файл загружен
   head.appendChild(script);
   }

Затем пишите код функции, который вы хотите выполнить после загрузки файла:

   var myPrettyCode = function(){
       // любой код выполняемый после загрузки файла
                                };

Запуск загрузки файла с JavaScript кодом и выполнение после ее полной загрузки кода делается так:

     loadScript("my_lovely_script.js", myPrettyCode);

Категория статьи: Веб-программирование | Просмотров: 4034 | Добавлена: 06.03.2013

Почему Вы еще не прокомментировали?
Оставьте свой комментарий! Весь Интернет уже заждался!

Ваше Имя Муж. Жен. Как Вас величать?
Антиспам защита

– Напишите название этого сайта по-русски
(если Вы не в курсе, сайт называется "РапидАп")

Текст комментария
 
О сайте ⋅  Контакты