Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Покдлючение .js скрипта в .js скрипте (https://javascript.ru/forum/misc/40249-pokdlyuchenie-js-skripta-v-js-skripte.html)

jule 29.07.2013 17:06

Покдлючение .js скрипта в .js скрипте
 
Ребят, помогите блондинке! Как подключить .js скрипт в .js скрипте? В интернете что-то подобное нашла, но не то. Главное, чтобы скрипт подключался напрямую, а не через функцию. Нужно примерно так:

index.html
<!DOCTYPE HTML..
<script src="script.js"></script>


script.js
<!--js код-->
подключение файла script2.js
<!--js код-->

script2.js
//что-то типа
alert('script2.js успешно подключен.');


Как делать нельзя:
index.html
<!DOCTYPE HTML..
<script src="script.js"></script>


script.js
<!--js код-->
//подключение файла script2.js в функции. Например, в add().
<!--js код-->
//вызов функции add()


Сама активация подключения скрипта и его отключения должна осуществляться событием onClick.
Что-то вроде
<a href="#" onclick="">Подключить скрипт</a>
<p><a href="#" onclick="">Отключить скрипт.</a></p>

ruslan_mart 30.07.2013 04:55

Отключить? - Не получится, скрипт уже загружен в кэш и выполнен, как Вы хотите его отключить?

<a href="#" onclick="addScript('script.js')">Подключить скрипт</a>

function addScript(src) {
   var a = document.head || document.getElementsByTagName('head')[0];
   var b = document.createElement('script');
   b.type = 'text/javascript';
   b.src = src;
   a.appendChild(b);
}

danik.js 30.07.2013 05:21

document.write('<script src="script2.js"><\/script>');

jule 31.07.2013 00:17

Ruslan_xDD,благодарю за решение!Вы мне очень помогли! А если попробовать при клике будет выполняться AJAX-скрипт, который будет как-бы обновлять данные в фоновом режиме, если это вообще возможно.Только в этот раз скрипт подключаться не будет.Думаю, так.

ruslan_mart 31.07.2013 05:04

То есть, Вы хотите AJAX'ом загрузить скрипт и выполнить его?

Можно так попробовать, на jQuery:
function runScript(src) {
   $.get(src, {}, function(js) {
      eval(js);
   });
}

jule 31.07.2013 13:59

Ruslan_xDD,точнее обновить данные, чтобы ранее подключенный скрипт очистился из кеша и чтобы он не был подключен.

danik.js 31.07.2013 15:38

jule, как вы определяете "подключенность" скрипта? Что это по вашему значит?

jule 31.07.2013 22:01

danik.js, я уже решила проблему ) . Правда, не этим способом, но решила. Все же, отвечу на Ваш вопрос. Допустим, есть определенный кусок кода, который работает только при подключенном скрипте. Когда подключающей строки (<script src="путь_к_файлу"></script>) нет и скрипта в кэше браузера тоже , он не работает. Вся проблема в том, что фичи, которые я использую на своем сайте, работают с помощью разных библиотек JS и JQuery. Однако, между некоторыми либрами возник конфликт - если 1 скрипт функционирует, то второй нет и наоборот. Кончено же, конфликт можно решить путем правки кода в библиотеках. Однако, это геморойно. Readme-файл к исходникам не прилагался. Да и на сайте разработчиков разъяснялось только то, как подключить либы с их сервера. Однако, в моем случае это не подходит.Мне пришлось скачивать эти библиотеки и вносить небольшие коррективы. В принципе, править чужой код мне не составит труда, но там огромные библиотеки .js кода, имеющие свои зависимости. Мне было бы тогда проще написать их самой с нуля.

edison 01.08.2013 16:27

noConflict() не пробовали?


Часовой пояс GMT +3, время: 23:40.