Наблюдайте событие 'Window Onload' в обновленном DIV-элементе - PullRequest
0 голосов
/ 28 февраля 2012

У меня есть div, который перезагружается с обновлением ajax (при нажатии на ссылку href "НАЖМИТЕ ЗДЕСЬ!").

В этом div есть наблюдатель событий для "загрузки окна".Это событие возникает только при перезагрузке страницы в браузере, а не при нажатии «НАЖМИТЕ ЗДЕСЬ».Хотя для evalScripts установлено значение true.

Функция "refreshDiv":

new Ajax.Updater('ajax', ajaxUrl, {
        method: 'post',
        parameters: {...},
        evalScripts: true,
        onComplete: function() {..}
}

HTML:

<div id="ajax"> 
    <a href="" onclick="return refreshDiv('ajax');">CLICK HERE!</a>

    <?php trigger here>
    <script type="text/javascript" language="javascript">
         Event.observe(window, 'load', function() { release(); });
    </script>
    <? php trigger end>
</div>

Я должен поместить его в раздел DIV, которыйперезагружается, потому что есть триггер из PHP, который решает вывести функцию release ();или нет.

Кто-нибудь может здесь помочь?

TIA Matt

1 Ответ

1 голос
/ 01 марта 2012

Очевидно, что окно уже загружено к тому времени, когда выполняется ваш AJAX, поэтому событие загрузки окна отсутствует.Если вы знаете это, то HTML-часть выглядит намного проще:

<div id="ajax"> 
    <a href="" onclick="return refreshDiv('ajax');">CLICK HERE!</a>

    <?php trigger here ?>
    <script type="text/javascript" language="javascript">release();</script>
    <?php trigger end ?>
</div>

Возможно, вам потребуется проверить, что запрос страницы действительно является AJAX, и в этом случае он должен быть частью триггера PHP.


PS.function() { release(); } это просто более длинный способ сказать release - вы могли бы использовать это изначально.

...