JQuery ajax() убивает js в коде

html JavaScript веб дизайн jQuery AJAX

Вот код:
$('#portfolio a').click(function(){
$.ajax({
url: "portfolio.html",
dataType: "html",
cache: false,
success: function(data){
$("#port").html(data);
}
});
});

по клику возвращается страница, но с полностью удаленным JS. То есть все, что заключено в теги <script> - метод убивает. Не подскажите, как можно это "убийство" отключить. В оф.документации не нашел.

Примечание:
пожалуйста, не считайте, что я настолько тупой, что, не проверив все возможные косяки с моей стороны, стану писать вопрос сюда.
В разных браузерах проверялось - везде js включен. Проверялось тупым заглядыванием в код страницы с помощью FireBug. В файле содержится html с вкраплениями js, как в виде ссылок на библиотеки, так и в виде голого кода.
Alex Norenberg, какой функции просто нет? что вы имеете ввиду.

Примечание:
true_answerer, спасибо за сочувствие, но append() я тоже пробовал - результат тот же. в Документации написано, что если dataType: "html", то <script> убираться не будет. а все равно убирается

Примечание:
dimasokol, пожалуйста http://narod.ru/disk/38946309001/portfolio.html.html

Примечание:
посмотрел alertОМ - <script> убивает не ajax(), а html() или appendTo(). Но в них нет параметров, отключающих фильтр. Какой может быть вариант решения?

Примечание:
true_answerer, нет, это ничего не дает
Ответы:
Да не может такого быть. Браузер? Как проверялось? Что в том файле содержится?
попробуйте не $("#port").html(data); а заюзать метод append или appendTo
проверьте в файрбаге не добавляется ли скрипт в заголовок страницы <head>
еще посмотрел как у меня это сделано. Например, "частичная" (т.е. без тегов head и body) вьюха без проблем имеет в конце <script>. Но я пишу с CDATA всегда:
нужно в приходящем html вырезать script и выполнять с помощью eval
в чем проблема-то была в тоге не разобрался?
OMG. Сколько раз уже разжевывалось.
Когда вы получаете данные с сервера - вы только получаете данные.
Когда вы вставляете эти данные в документ - вы только вставляете элементы.
Эти действия никоим образом не сообщают браузеру, что нужно запустить какой-то код. Если бы браузер автоматом запускал бы код - к чертям полетела бы не только безопасность, но и отказоустойчивость всех приложений разом (поскольку тег <script> в ответе мог бы появится по случайности или чьему-то злому умыслу). К тому же нельзя гарантировать во всех случаях, что код в полученном теге <script> не будет противоречить остальному коду программы и не вызовет ее неверного поведения и ошибок.


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.