Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 23.06.2011, 20:02
Новичок на форуме
Отправить личное сообщение для creasysee Посмотреть профиль Найти все сообщения от creasysee
 
Регистрация: 23.06.2011
Сообщений: 4

Вызов JS-функции после вставки её AJAX-ом
После завершения аджакса вставляю скриптом:
$(divPreview).set('html',result.sText);

(это Mootools, не jQuery, но один хрен)
в DOM некий html код, содержащий в себе скрипт.
Вставляется следующее в некий внешний div с id='divPreview' (и это видно на вкладке Elements хрома), собственно это и есть данные из result.sText:
<div id="data_canvas1" style="position:relative; width:600px; height:480px;"></div>
<script type="text/javascript">
     window.addEvent("domready", function() {
          getTopicData("0,59", "data_canvas1");
     });
     function previewData1() {
          getTopicData("0,59", "data_canvas1");
     };
</script>

getTopicData - живая функция из внешнего *.js.
Далее, следующей строчкой скрипта я пытаюсь вызвать только что вставленную функцию previewData1:
window["previewData1"]();

P.S. для страховки пробовал и явно previewData1(); - тот же результат
Имею ошибку скрипта, дословно:
Uncaught TypeError: Object [object DOMWindow] has no method 'previewData1'

addEvent("domready"... здесь показан просто потому что он есть в пришедшем коде, но жить мешать не должен - domready уже был, и давно. Оставлен из-за совместимости с другими страницами и т.д. и т.п.

Есть мысли почему функция не вызывается? Хром же её уже видит?

Последний раз редактировалось creasysee, 24.06.2011 в 13:38.
Ответить с цитированием
  #2 (permalink)  
Старый 23.06.2011, 20:21
Новичок на форуме
Отправить личное сообщение для creasysee Посмотреть профиль Найти все сообщения от creasysee
 
Регистрация: 23.06.2011
Сообщений: 4

Да, забыл сказать, новое содержимое видно в хроме до выполнения вызова - на вызове поставил брэкпоинт. Т.е. ошибка в любом случае - что с брэкпоинтом, что без.
Ответить с цитированием
  #3 (permalink)  
Старый 24.06.2011, 13:36
Новичок на форуме
Отправить личное сообщение для creasysee Посмотреть профиль Найти все сообщения от creasysee
 
Регистрация: 23.06.2011
Сообщений: 4

Дальнейшее курево показало, что та часть, которая HTML, доступна из скрипта, т.е:
alert1($('data_canvas1').get('tag'));

честно выдает 'div', но функция, которая по-видимому юзается скриптом из коллекции document.scripts, в эту коллекцию не попала.

Надо как-то проапдейтить коллекцию скриптов...
Ответить с цитированием
  #4 (permalink)  
Старый 24.06.2011, 14:00
Новичок на форуме
Отправить личное сообщение для creasysee Посмотреть профиль Найти все сообщения от creasysee
 
Регистрация: 23.06.2011
Сообщений: 4

Похоже - это ж*па, даже на StackOverflow ничего не нашел. В моем случае пока вижу одно решение, если через скрипт ничего не передать (var x = "0,59"; var y = "data_canvas1"; - тоже будут недоступны), то аджаксом вместе с дивом присылать hidden input c данными, а потом скриптом их читать и и уже пихать в живую функцию.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов конкретной функции класса на php AJAX запросом Slavenin AJAX и COMET 8 03.06.2011 22:47
Вызов функции печати страницы полученной через AJAX Garik AJAX и COMET 4 02.03.2011 17:05
Вызов функции после изменения данных nematod AJAX и COMET 11 21.01.2011 09:23
Вызов событий из js функции Destrifer Общие вопросы Javascript 5 29.11.2008 15:28
вызов функции, из JS генерируемого на сервере subaru AJAX и COMET 1 12.07.2008 13:44