Скрипт на JS не работает без перезагрузки страницы
Имеем в теге <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> но исполняется первый вариант. Перезагрузка страницы - исключена. Как заставить работать второй скрипт? |
А попробуй-ка
script.outerHTML = script.outerHTML иногда это используют для подталкивания изменений |
Вроде оживает. Но теперь там два скрипта сидят (первый никуда не исчез). А так как там переменные и функции с одинаковыми именами - начинается катавасия.
Может еще у тебя есть какой-нить вариант по удалению предыдущего скрипта из кода? Спасибо. |
Цитата:
|
Внесу дополнительную ясность:
<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(); Суть - избавиться от переменных свойственных "предыдущему" языку. Ну как-то так. Спасибо заранее. |
Цитата:
добавить ещё один файл js в дерево документа. ключевое слово добавить Цитата:
Цитата:
http://javascript.ru/delete |
| Часовой пояс GMT +3, время: 12:56. |