Скрипт на 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, время: 22:14. |