Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проблема с javascript
 
 автор: c-quence   (10.02.2011 в 18:07)   письмо автору
 
 

Приветствую. Проблема следующая.
Загружаю аяксом в определенный див html контент. Там и javascript присутствует, который не выполняется после загрузки в див. То есть даже самый простой алерт не работает.
Подскажите, как быть?
Как сделать, чтоб после того как я загрузил в див какойто текст/код включая javascript этот js выполнился??

  Ответить  
 
 автор: SHAman   (10.02.2011 в 18:52)   письмо автору
 
   для: c-quence   (10.02.2011 в 18:07)
 

Возможно, он просто не интерпретируется. Но вообще, попробуйте так: загружаемый код оформите в функцию. После того, как вставите полученный код в див - вызовите функцию из родительского скрипта. Если не получится - значит нужно подгружать JS отдельно и делать eval.

  Ответить  
 
 автор: Абырвалг   (10.02.2011 в 19:31)   письмо автору
 
   для: c-quence   (10.02.2011 в 18:07)
 

Зарубите на носу:
аяксом Вы получаете не HTML-код, и не JS-код.
Вы вообще НИКАКОГО КОДА аяксом получить не можете.
Аяксом Вы получаете одну СТРОКУ СИМВОЛОВ - буквочки, циферки и всякие прочие значочки...

Получив эту строку, Вы можете её разобрать на несколько кусочков (подстрок).

1. Один кусочек - это будущий HTML-код.
Именно - БУДУЩИЙ.
Настоящим HTML-кодом он станет ТОЛЬКО ПОСЛЕ того, когда Вы этот кусочек строки символов (подстроку) присвоите в качестве значения свойства innerHTML какому-нить тегу на странице.

2. Второй кусочек - это, положим, будущий исполняемый JS-код.
Именно - БУДУЩИЙ.
Настоящим JS-кодом он станет ТОЛЬКО ПОСЛЕ того, когда Вы создадите тег <SCRIPT> и присвоите свойству text этого тега в качестве значения этот кусочек строки символов (подстроку).
http://www.softtime.ru/forum/read.php?id_forum=4&id_theme=64575#post375669

3. Остаётся ОДИН вопрос: а как узнать - где что в полученной аяксом строке символов?
ОТВЕТ: а кто у нас PHP-скрипт пишет?
Вы или Пушкин?
Если - ВЫ, то тогда Вы и должны сформировать такой ответ сервера, чтобы в нём было можно отыскать: где начинается и где заканчивается будущий HTML-код. И - где начинается, и где заканчивается будущий JS-код.
Например, так:
Если будущий HTML-код имеет вид: <span>ля-яля-ля</span>
А будущий JS-код имеет вид: alert ('HELLO');
То PHP может сформировать следующий ответ:<span>ля-яля-ля</span>|||alert ('HELLO');

Скрипт на странице, получив эту строку, элементарно рассплитует её в массив по разделителю ||| и нулевой элемент массива использует как HTML-код, а первый элемент - как JS-код.

Понятно? Передайте это Вашему "Пушкину".

Если Вы (или Ваш "Пушкин", который Вам PHP-код пишет) этого понять не в состоянии и ОБЯЗАТЕЛЬНО засунет в ответ сервера теги <script></script> с JS-кодом между ними и будет ожидать исполнения JS-кода просто так, потому как именно так хочется, то передайте ему (и запомните сами) - так не выйдет.
-----

Метод eval () использовать не надо.
Никогда.
Никому.
Ни при каких обстоятельствах.


[поправлено модератором]

  Ответить  
 
 автор: c-quence   (11.02.2011 в 10:35)   письмо автору
 
   для: Абырвалг   (10.02.2011 в 19:31)
 

Спасибо. Все понял. С "проблемой" разобрался.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования