Имеем в теге <head> следующее:
<script type='text/javascript' src='http://_путь_к_скрипту_/script1.js'></script>
Имеем функцию (JS):
function changeScript() {
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.setAttribute('type', 'text/javascript');
script.setAttribute('src', 'http://_путь_к_скрипту_/script2.js');
head.insertBefore(script, head.firstChild);
head.appendChild(script);
}
имеем событие, вызывающее данную функцию (допустим, кнопка с onClick)
По великой идее при нажатии на кнопку должны выполняться всякие колдоства с аяксом (к делу не относится) и сменяться скрипт. Все происходит так как нужно, т.е. в <head> появляется именно требуемое:
<script type='text/javascript' src='http://_путь_к_скрипту_/script2.js'></script>
но исполняется первый вариант. Перезагрузка страницы - исключена. Как заставить работать второй скрипт?
Примечание:
>Вызвать его ручками принудительно.
А вот он и не вызывается как раз-таки. Для браузера его не существует. Что имелось в виду под "ручками"?
Примечание:
Внесу дополнительную ясность:
<head>
...
<script type="text/javascript" src="http://_path_to_/engine.js"></script>
<script type="text/javascript" src="http://_path_to_/javascript.js"></script>
<script type="text/javascript" src="http://_path_to_/calendar.js"></script>
<script type="text/javascript" src="http://_path_to_/calendar-ru.js"></script>
</head>
Аяксом на onClick сменяется содержимое ДИВа на страничке. Файл calendar-ru.js содержит лангпак для календаря. На тот же самый onClick должен меняться и лангпак на calendar-en.js, или calendar-de.js
Все так и происходит. Но переменные остаются из самого первого файла плюс добавляются из второго, плюс из третьего, если уж начать по языкам кликать. Единственное на данный момент, но неприемлемое решение - это location.reload(); Суть - избавиться от переменных свойственных "предыдущему" языку.
Ну как-то так. Спасибо за терпение.
@mexoboy: Ваш способ только добавляет дополнительный скрипт пониже предыдущего ((
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.