JQuery.Выполнить JS-скрипт после его загрузки в DIV
От: vit.rsdn  
Дата: 11.01.09 14:18
Оценка:
Здравствуйте.

у меня есть, скажем так, Main page
на ней есть контролы, и div
при нажатии из некоторые из контролов, нужно подгрузить в этот div страницу с сервера, внутри которой есть javascript.
т.е. при нажатии на одну из этих кнопок идет такой вот запрос:
$.post(urlRequestedPage, data, onResponseLoaded)

в функции
function onResponseLoaded(serverResponse) {
mydiv.innerHTML = serverResponse;
}

если со стороны сервера приходит страница, в которой "чистый" HTML, он прекрасно отображается внутри этого div-a.
если же внутри этой пришедшей страницы есть вставки джаваскрипта, то...
1) его "не видно".При попытке вызывать функции этого пришедшего JS вылетает ексепшн
2) если этот JS вставить на Main page и, при вызове затем его методов, — они срабатывают

Вопросы:
1) как сделать так, что бы был "виден" и отрабатывал тот джаваскрипт, который грузится аджаксом в div (без необходимости его вставлять в Main page)
2) в JQuery есть замечательная функция $(document).ready, но отрабывает она один раз и когда загрузилась Main page. Возможно ли сделать как-то, что когда в mydiv динамически загрузили контент — сработала некая JS-функция. Еще раз загрузили — еще раз сработала и тд и тп

заранее,спасибо!!!
Re: JQuery.Выполнить JS-скрипт после его загрузки в DIV
От: meandr  
Дата: 11.01.09 18:01
Оценка:
JQuery.Выполнить JS-скрипт после его загрузки в DIV
То что вы хотите сделать впринцепе не кросс браузерно и вряд ли осуществимо
Posted via RSDN NNTP Server 2.1 beta
Re: JQuery.Выполнить JS-скрипт после его загрузки в DIV
От: dkotov  
Дата: 11.01.09 21:05
Оценка:
Как вариант это отделить HTML от JavaScript (если позволяет ситуация).
Весь HTML в DIV, а JavaScript проводить через window.eval()/window.execScript().

Здравствуйте, vit.rsdn, Вы писали:

VR> Здравствуйте.


VR>у меня есть, скажем так, Main page

VR>на ней есть контролы, и div
VR>при нажатии из некоторые из контролов, нужно подгрузить в этот div страницу с сервера, внутри которой есть javascript.
VR>т.е. при нажатии на одну из этих кнопок идет такой вот запрос:
VR>$.post(urlRequestedPage, data, onResponseLoaded)

VR>в функции

VR> function onResponseLoaded(serverResponse) {
VR> mydiv.innerHTML = serverResponse;
VR> }

VR>если со стороны сервера приходит страница, в которой "чистый" HTML, он прекрасно отображается внутри этого div-a.

VR>если же внутри этой пришедшей страницы есть вставки джаваскрипта, то...
VR>1) его "не видно".При попытке вызывать функции этого пришедшего JS вылетает ексепшн
VR>2) если этот JS вставить на Main page и, при вызове затем его методов, — они срабатывают

VR>Вопросы:

VR>1) как сделать так, что бы был "виден" и отрабатывал тот джаваскрипт, который грузится аджаксом в div (без необходимости его вставлять в Main page)
VR>2) в JQuery есть замечательная функция $(document).ready, но отрабывает она один раз и когда загрузилась Main page. Возможно ли сделать как-то, что когда в mydiv динамически загрузили контент — сработала некая JS-функция. Еще раз загрузили — еще раз сработала и тд и тп

VR>заранее,спасибо!!!
... << RSDN@Home 1.2.0 alpha 4 rev. 1125>>
Re: JQuery.Выполнить JS-скрипт после его загрузки в DIV
От: Mamut Швеция http://dmitriid.com
Дата: 12.01.09 09:45
Оценка:
VR>1) как сделать так, что бы был "виден" и отрабатывал тот джаваскрипт, который грузится аджаксом в div (без необходимости его вставлять в Main page)

использовать $.getScript

VR>2) в JQuery есть замечательная функция $(document).ready, но отрабывает она один раз и когда загрузилась Main page. Возможно ли сделать как-то, что когда в mydiv динамически загрузили контент — сработала некая JS-функция. Еще раз загрузили — еще раз сработала и тд и тп


параметр callback в документации

$(el).load(
    'a.html',
    function(){
        // делаем, что надо
    }
);

// или

$.get(
    'a.html',
    function(resp) {
        // работаем с полученым resp
    }
);


dmitriid.comGitHubLinkedIn
Re: JQuery.Выполнить JS-скрипт после его загрузки в DIV
От: vit.rsdn  
Дата: 12.01.09 13:23
Оценка:
Привет всем
в итоге, помогло вот это: http://www.codeproject.com/KB/ajax/ensure.aspx
может кому пригодится при сходной проблеме.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.