我有一个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
答案 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
的一种较长的方式 - 你原本可以使用它。