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

Observe Event 'Window Onload' within a refreshed DIV-element

本文关键字:DIV 元素 刷新 Onload 事件 Window 观察      更新时间:2023-09-26

我有一个div,它正在用ajax更新重新加载(当按下a href链接"单击此处!"时)。

在这个div中,有一个"window-onload"的事件观察器。此事件仅在浏览器中重新加载页面时触发,而不是在点击"单击此处"时触发。尽管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();

这里有人能帮忙吗?

很明显,在执行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的一种更长的表达方式——你本来可以用它。