Xpages view.postscript()是否允许调用作为输出脚本加载的函数?

Xpages view.postscript()是否允许调用作为输出脚本加载的函数?,xpages,Xpages,我使用存储加载ExtJS网格的两个相当长的客户端函数的内容。我可以使用客户端javascript调用该函数 我发现我需要根据下划线文档中的条件显示不同的网格。为了引用后端,我将代码移动到服务器端,然后尝试使用view.postScript调用网格。这是行不通的,也是我问题的基础 这种方法可能吗?我不想把所有的代码都放在事件中。这些函数相当长,为了可读性和可维护性,最好保存在脚本块中。这些函数肯定是在客户端加载的,因为我可以使用firebug控制台手动加载它们。也许我遗漏了一些简单的东西,所以我想

我使用
存储加载ExtJS网格的两个相当长的客户端函数的内容。我可以使用客户端javascript调用该函数

我发现我需要根据下划线文档中的条件显示不同的网格。为了引用后端,我将代码移动到服务器端,然后尝试使用view.postScript调用网格。这是行不通的,也是我问题的基础

这种方法可能吗?我不想把所有的代码都放在事件中。这些函数相当长,为了可读性和可维护性,最好保存在脚本块中。这些函数肯定是在客户端加载的,因为我可以使用firebug控制台手动加载它们。也许我遗漏了一些简单的东西,所以我想在改变方法之前先问一下

var typePO = document1.getItemValueString("typePO");
if(typePO == "AFS"){
    view.postScript("loadGridAFS();")
} else {
    view.postScript("loadGridOther();")
}
此代码位于面板的serverside OnClient Load事件中。我尝试添加“return”关键字,但没有任何区别


更新:我甚至无法使用view.postscript()获得简单的警报。此方法是否仅适用于SSJS中的某些类型的事件?

在使用简单警报进行了一些实验后,我可以说view.postScript()并不适用于所有情况

为了进行测试,我将相同的代码放在xpage的一个6事件中。下面是我使用的代码示例:view.postScript(“alert('onClientLoad');”;我只是更改了消息以匹配事件

结果如下:

  • onClientLoad=无
  • beforePageLoad=XSP错误
  • afterPageLoad=工作
  • afterRestoreView=无
  • beforeRenderResponse=有效
  • afterRenderResponse=无

  • 我还没有尝试过所有可用的事件,但这里的底线是,您不应该指望view.postscript()在任何地方都能工作。如果它不起任何作用,请在询问您试图运行的客户端javascript代码之前,首先尝试发出一个简单的警报,以查看事件supports view.postscript的运行情况。

    您能定义“不工作”吗?浏览器控制台中是否显示错误?还是什么都没发生?或者它运行了,但某些行为与预期不同?当然,Tim,网格应该在的页面上没有显示任何内容。Firebug没有报告任何错误。就像代码不在那里一样,我把代码从面板事件移到XPoxPaPuleOAD事件,它工作得很好。当你认为生命周期的<代码> ReDeRyRebug < /代码>阶段将标记发送到浏览器,如果在
    afterRenderResponse
    期间运行任何旨在影响该标记的代码都不会产生任何效果,这是有道理的:为时已晚
    beforePageLoad
    太早,因为组件树尚不存在。不确定为什么它在其他事件中不起作用,但可能是出于类似的原因。