@DTHRT

Как можно заново загрузить javascript?

Всем доброго времени суток!
Помогите пожалуйста разобраться:)

Есть скрипт который нужно после события click загружать заново.

Я пробовал через $.getScript() , однако скрипты буквально наслаиваются друг на друга (у меня был подключен оригинал через script-тег и по клику на кнопку, у меня срабатывал getScript() ) - в итоге ничего не работает...

Возможно ли сделать что-то типо removeScript()? (используя js с jquery) .
Всем спасибо!)
  • Вопрос задан
  • 1125 просмотров
Решения вопроса 2
sergiks
@sergiks Куратор тега JavaScript
♬♬
Есть скрипт который нужно после события click загружать заново.

Здесь что-то очень, очень неправильно.

Скрипт загружается единственный раз и сохраняется в кэше браузера. Выполнять его можно многократно.

Хорошо бы привести содержание скрипта в вопросе. Под «спойлером», если он длинный. Обязательно обернув в тег <code>.

Можно обернуть код файла в функцию. И вызывать её сразу при загрузке скриптов. И потом по клику.

Например, в загружаемом скрипте было так:
my_script.js
var message = "Привет Хабр";
alert(message);
А вы сделайте так:
my_script.js
function my_func() {
  var message = "Привет Хабр";
  alert(message);
}
и в коде страницы:
<button id="btn">нажми</button>

<script src="my_script.js"></script>
<script>
document.addEvenListener('load', my_func); // при загрузке страницы выполнить
document.getElementById('btn').addEventListener('click', my_func); // и при нажатии кнопки
</script>
Ответ написан
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Любой из вариантов:
1. includeHTML
2. Обернуть код скрипта в функцию и вызывать через функцию после однократной загрузки обычным способом.
3. eval()
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@netruxa
как вариант, засунуть этот код в фунцию
var elem = document.createElement('script');
elem.type = 'text/javascript';
elem.src = '//адрес до скрипта';
document.getElementsByTagName('body')[0].appendChild(elem);

и вызвать ее
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы