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

  • Автор темы Автор темы anchar
  • Дата начала Дата начала

anchar

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

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

(у тебя плоские шутки)
 
тогда что мешает просто подгружать нужный код по script.src? зачем примешивать аякс когда есть старый надежный механизм?
 
В библиотеке prototype такая возможность имеется. Или посмотри как это сделано там, или просто используй ее
http://prototypejs.org
http://prototypejs.org/api/ajax/updater
 
енто была не шутка, а предположение и ровно столькоже умное сколь и текст откуда оно вышло...

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

зы
недумал что загружая текст аяксом можно сэкономить в отличии от <script> O_o
 
использую AJAX из dklab.
все мило и хорошо. js выполняется через eval() и все счастливы, но:

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

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

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

но там молчат.
 
код из 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 || "");
 
Сверху