【发布时间】:2013-08-02 06:08:05
【问题描述】:
在我的 XPage 中,我的脚本块中有一个 addOnLoad。但问题是即使在我不想要的部分刷新期间它也会触发。例如如果我在数据表上有一个寻呼机控件,那么单击页面会触发 addOnLoad 函数。 dojo.addOnLoad 和 XSP.addOnLoad 都会发生这种情况。
dojo.addOnLoad(function() {
console.log("addOnLoad");
});
每次进行部分刷新时都会打印“addOnLoad”。我什至尝试用这种方式修改代码,但没有成功。
var addOnLoadFired = false;
dojo.addOnLoad(function() {
if (addOnLoadFired) {
return;
}
addOnLoadFired = true;
console.log("addOnLoad");
});
如何避免这种情况?
【问题讨论】:
-
将脚本块移出部分刷新的区域。
-
我认为这不是原因。我的例子是我创建了一个数据表和一个与之关联的寻呼机控件。当使用寻呼机控件在页面之间切换时,
addOnLoad会执行。并且脚本块不驻留在数据表中。 -
Hack解决方案:代码第一次运行时,在viewScope中写点东西,在运行代码前检查一下?
-
@AaronBrake:但
viewScope是 SSJS,我的代码是客户端 JavaScript。 -
然后可以将值写入隐藏字段并检查。
标签: javascript dojo xpages