如何覆盖RichFaces 4.1.0的popupPanel.js中的函数?

时间:2014-01-03 11:05:18

标签: javascript richfaces

我遇到了RichFaces弹出式面板的问题。我需要在弹出窗口打开时立即关注弹出窗口中的第一个输入元素。然后,用户必须能够使用键盘遍历弹出窗口中的所有输入元素。目前我正在使用RichFaces 4.1.0。

通过不同的论坛后,我发现这是RichFaces 4.1.0中的一个错误,已在RichFaces 4.2.3版本中得到修复。 Jboss社区通过更改 popupPanel.js 文件的 processAllFocusElements 来解决此错误。

到目前为止,我无法迁移到RichFaces 4.2.3。那么如何覆盖默认行为呢? 函数 processAllFocusElements 以便它可以正常使用RichFaces 4.1.0本身吗?

感谢。

1 个答案:

答案 0 :(得分:0)

一种可能性是修补RichFaces jar文件并将popupPanel.js替换为4.2.3中的文件。

可能更简单的方法:将4.2.3 popupPanel.js文件(从中删除不需要的部分)放到项目文件夹中,并按照加载自定义javascripts的方式加载它(模板中的某处我猜使用h:outputScript)。 基本上4.1.0 popupPanel.js仍将执行,但4.2.3版本将执行并覆盖结果。

单个方法的简单覆盖可能如下所示:

jQuery.extend(RichFaces.ui.PopupPanel.prototype, {
    processAllFocusElements: function(root, callback) {
        ....
    }
}