Как запусить скрипт, находящийся в переданном ajax тексте?

anchar

Новичок
Как запусить скрипт, находящийся в переданном ajax тексте?

Суть в том, что после передачи ajax-ом и вставки в страницу какого-то html с javascript, этот javascript не запускается.
Как его выполнить? Нашел вариант с нахожением всех тегов <script></script> и выполнением их содержимого с помощью eval(), но это называется "способ через ж..."
Мож другой какой способ есть?
 

WP

^_^
Можно его выдавать отдельной переменной jseval и ее eval'ить.
 

anchar

Новичок
Javascript-а много (визвиг), и нужно выполнить его, ничего не меняя в исходном тексте.
 

iamFake

Mind Of Liberty
типа мегамодный способ защитить визивиг от кражы исходника? :confused:
 

anchar

Новичок
Способ уменьшить количество передоваемых данных!

(у тебя плоские шутки)
 

dimagolov

Новичок
тогда что мешает просто подгружать нужный код по script.src? зачем примешивать аякс когда есть старый надежный механизм?
 

BRat

o_0
В библиотеке prototype такая возможность имеется. Или посмотри как это сделано там, или просто используй ее
http://prototypejs.org
http://prototypejs.org/api/ajax/updater
 

anchar

Новичок
не просто код, а код + html. Как его подгрузить без ajax ?
 

iamFake

Mind Of Liberty
енто была не шутка, а предположение и ровно столькоже умное сколь и текст откуда оно вышло...

чтото ты не так делаеш раз eval не работает, ведь енто один из вариантов использования JSON... аякс запрос а затем eval и у нас массив...

зы
недумал что загружая текст аяксом можно сэкономить в отличии от <script> :confused:
 

440hz

php.ru
использую AJAX из dklab.
все мило и хорошо. js выполняется через eval() и все счастливы, но:

если в js вернуть еще один вызов doLoad(), то в FF не работает, а во всех остальных броузерах пашет.

http://demo.matecms.ru/test1/
не знаю куда рыть...

спрашивал на
http://forum.dklab.ru/js/jshttprequest/VlogenniyRekursivniyVizovDoload.html

но там молчат.
 

MiRacLe

просто Чудо
код из jQuery:

var globalEval: function( data ) {
if ( window.execScript )
window.execScript( data );
else if ( jQuery.browser.safari )
// safari doesn't provide a synchronous global eval
window.setTimeout( data, 0 );
else
eval.call( window, data );
}

из текста, который вернулся посредством XHR выдёргиваете все теги script и выполняете их через этот самый globalEval (each_script.text || each_script.textContent || each_script.innerHTML || "");
 
Сверху