是否允许您调用加载为输出脚本的函数? [英] Does view.postscript() allow you to call functions loaded as output scripts?

查看:12
本文介绍了是否允许您调用加载为输出脚本的函数?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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

这种方法可能吗?我不希望将所有代码都放入事件中。这些函数相当长,并且为了可读性和可维护性,更好地保存在脚本挡路中。这些函数肯定会加载到客户机中,因为我可以使用Firebug控制台手动加载它们。也许我错过了一些简单的东西,所以我想在改变方法之前先问一下。

var typePO = document1.getItemValueString("typePO");
if(typePO == "AFS"){
    view.postScript("loadGridAFS();")
} else {
    view.postScript("loadGridOther();")
}

此代码位于面板的serverside onClientLoad事件中。我试过添加‘Return’关键字,但没有什么不同。

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

推荐答案

在使用简单的警报进行了一些试验之后,我可以说view.postScript()并不是到处都能用。

对于测试,我将相同的代码放入xpage的六个事件中。下面是我使用的代码示例:view.postScript("alert(‘onClientLoad’);");我刚刚更改了消息以匹配事件。

结果如下:

  1. onClientLoad=Nothing
  2. beforePageLoad=xsp错误
  3. After PageLoad=Works!
  4. After RestoreView=Nothing
  5. beforeRenderResponse=Works!
  6. After RenderResponse=Nothing

我没有尝试过所有可用的事件,但这里的底线是您不应该指望view.postscript()在任何地方都能工作。如果没有执行任何操作,则在询问您正在尝试运行的客户端javascript代码之前,首先尝试一个简单的警报,以查看事件是否支持view.postscript。

这篇关于是否允许您调用加载为输出脚本的函数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆