Задать вопрос
wartur
@wartur

Выгрузить javascript код из браузера?

Здравствуйте.



Собственно сабж.

Есть некоторый код, подгруженный скажем тегом script в документе.



Происходит аджакс запрос, подгружается данные другой страницы, а с ней требуется еще и js кода обработчиков подгрузить, нужно избежать конфликтов этих обработчиков от предыдущего к следующему переходу (перезагрузки страницы не происходит, это аджакс — только частичная загрузка)



Как удалить код? Просто удалить из дерева документа script



Если да, есть ли какие-нибудь решения, что бы они как-нибудь сами удалялись по требованию, и загружались тоже, прямо в коде JS без работы с html, вроде include ну и наверное какой-нибудь unLoad.



Спасибо.
  • Вопрос задан
  • 4676 просмотров
Подписаться 2 Оценить Комментировать
Решения вопроса 1
kuzemchik
@kuzemchik
Удалять js со страницы мне кажется очень странным костылем.
Пересекающийся код решается замыканиями. Пересекающиеся селекторы решаются префиксами (либо принудительным unbind).
А вообще это очень странная проблема, растущая, скорее, из неправильной организации кода на клиенте.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
Вот он, страх перед ужасным eval. Поражаюсь на какие извращения идут разработчики, что бы не использовать эту функцию.

Как это делается в вашем случаи:
— Вместо добавления тега script прогоняете, полученный с сервера, код через eval. По сути действия это одно и тоже, только eval быстрее.
— Разбиваете код скрипта на отдельные управляющие функции (с отдельными функциями включения/выключения нужной части кода).
— Передаёте с сервера только управляющие конструкции.
Ответ написан
@egorinsk
Чтобы не было конфликтов, надо правильно писать яваскрипт-код. Чтобы в подгруженной через AJAX странице скрипты выполнялись, вроде бы достаточно ее вставить через $(frame).html(pageContent); jQuery сам найдет и выполнит скрипты.
Ответ написан
Комментировать
taliban
@taliban
php программист
api.jquery.com/delegate/ Советую ознакомиться. bind и unbind в вашем случае ужасный костыль, и я совсем не соверую его использовать и перейти на делегирование. Спасете себе нервы и код улучшите.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы