在刷新的DIV元素中观察事件'Window Onload'

时间:2012-02-28 14:15:07

标签: javascript ajax javascript-events prototypejs

我有一个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 个答案:

答案 0 :(得分:1)

显然,在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的一种较长的方式 - 你原本可以使用它。