| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > JavaScript: Общие вопросы > Подгрузка и выполнение JavaScript |
| Автор: Greendrake 16.3.2006, 18:27 |
| Недавно обнаружил такую вещь, на которую я никак не рассчитывал. Динамически подгружаю контент для дива, и к нему же прилагается дополнительный JavaScript-код, который мне нужно немедля выполнить. Ничего не подозревая, просто шлю код в оболочке <script type="text/javascript" language="JavaScript"></script>, думая, что как только он встанет в innerHTML дива, тут же и выполнится. Хрен там! Попытка выполнить этот фокус в DOM-овском стиле типа appendChild тоже ничего не дала. Это что же получается, остаётся только слать чистый код и загонять его в eval ??? |
| Автор: Alx 16.3.2006, 18:42 | ||
| Greendrake, обворачивай в функцию и вызывай её. либо клади во внешний файл и подгружай, как <script src="*"></script>
|
| Автор: 12345c 16.3.2006, 20:21 |
| innerHTML - не входной поток, ничего удивительного. |
| Автор: Greendrake 17.3.2006, 18:01 | ||||
Мда, видимо так и придётся. Кто-нить может объяснить, почему вот в этом примере нажатие на кнопку 2 выдаёт сообщение "done" только в случае, когда eval стоит в глобальном контексте, а когда помещаешь его в doIt (где закомментировано) - перестаёт работать
|
| Автор: 12345c 17.3.2006, 18:42 |
| Функция объявляется как локальная во 2-м случае и перестаёт существовать по окончании doIt(). |
| Автор: Ciber SLasH 17.3.2006, 19:05 | ||
Greendrake, ну можно было бы сообразить, у тебя во втром случае код в run-time получается такой:
doIt2 у тебя внутри doIt получится, как сказал 12345c: |
| Автор: Greendrake 17.3.2006, 22:03 | ||||
Да, ступил, впрочем до меня это доперло вскоре после поста, но подтереть не успел Выходит, чтобы использовать решение сабжа "оборачивать в функцию и вызывать её", нужно все функции в начинке представить в виде
Подгружать отдельным файлом влом, поэтому попробую так и сделать. |
| Автор: Alex_B 26.5.2007, 14:57 | ||||||
Я воспользовался функцией Alx Когда гружу скрипты со своего же сайта, все отлично, но нужно еще и сдругих. Вот, например, пытаюсь поключиться к Google maps:
Ничего не происходит. В чем может быть причина? Спасибо. |
| Автор: Alex_B 26.5.2007, 15:22 | ||
| Посмотрел в FF, там внизу в строке состояния появляется надпись: "Прочитано www.google.com" Если же поключать скрипт вручную, неиспользуя функцию Alx, т.е. вот так:
Все нормально работает. |