Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Выполнение javaScript


Автор: taral 9.9.2008, 11:44
Допустим у меня есть HTML.
И там встречается 
Код

<script type="text/javascript">
    alert();
</script>

При обычной загрузке страницы сообщение выводится. А если этот код я вставляю используя ajax.
$('ddd').innerHTML = result. То понятное дело ничего не выводится. Почему это так я понимаю. Тут ajax не причем. Но проблему решить сам не могу) Помогите пожалуйста.

Автор: chertoss 9.9.2008, 13:21
Цитата

При обычной загрузке страницы сообщение выводится. А если этот код я вставляю используя ajax.
$('ddd').innerHTML = result.


что это? где тут ajax? имеется ввиду использование фреймворка? если да, то какого?

Цитата

Почему это так я понимаю. Тут ajax не причем.


не совсем понятен смысл фразы

Автор: taral 9.9.2008, 14:39
Я использую прототайп библиотеку.
Допустим такой пример.
Код

var pars = $H({
     id:$F('id_text')
 });
new Ajax.Updater("basic", "http://test/first.php", {method:"post", parameters:pars});

Допустим так. И скрипт first.php возвращает HTML. в котором встречается
Код

<script type="text/javascript">
    alert();
</script>

При выполнении запроса. Обновляется блой с id - basic.
Туда вставляется HTML код что возвращает first.php. Но javaScript что он возвращает не выполняется. Почему это так ясно, но мне нужно чтобы выполнялся)
Пока что я нашел такой вариант решения. Передавать JSON строку. В которой будут 2 элемента. Первый это HTML который нужно показать. А второй javaScript что нужно выполнить. Использовать не  Ajax.Updater а Ajax.Request. Вставить HTML и выполнить код. Но это решение мне не нравится.

Автор: Sanchezzz 9.9.2008, 14:43
при вставке текста innerHTML в документ не какой JS код работать не будет так как браузер о нем не знает.. альтернатива создавать елимент script и указывать путь до скрипта на сервере только так еще и будет работать... сам столкнулся с подобным...

ну если я ошибаюсь покажите без фреймворка...  smile 

Автор: taral 9.9.2008, 14:47
Цитата(chertoss @  9.9.2008,  13:21 Найти цитируемый пост)
не совсем понятен смысл фразы

Да что-то я и правда высказался неудачно) Я имел в виду вот что. Когда мы открываем страницу браузер выполняет js  код качает картинки и формирует структуру страницы, создает обьекты HTML элементов и т.д.
А я загружаю страницу через AJAX. Выходит что я просто получаю текст. И потом его вставляю в нужный мне элемент. И код не выполняется. Ой что-то опять запутанно вышло. Я сам понимаю что хочу сказать. В словами высказать что-то не выходит...
Возможно такой пример покажет что я хочу.
Код

$('aa').innerHTML = '<script type="text/javascript"> alert(); </script>';
<div id="aa"></div>

Пример конечно не рабочий.

Автор: taral 9.9.2008, 15:16
Цитата(Sanchezzz @  9.9.2008,  14:43 Найти цитируемый пост)
при вставке текста innerHTML в документ не какой JS код работать не будет так как браузер о нем не знает.. альтернатива создавать елимент script и указывать путь до скрипта на сервере только так еще и будет работать... сам столкнулся с подобным...

Да я знаю почему не работает. Я думал что может есть решение.

Автор: Sannis 9.9.2008, 21:06
Есть решение. Берётся пришедший HTML, из него регуляркой вырезается код(он между <script .*> и </script>) и eval'ится.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)