我如何覆盖 Omnifaces 中的某些 Javascript 函数?
How I can override some Javascript function from Omnifaces?
我想覆盖从 Omnifaces 的 o:highlight
组件调用的 Javascript 函数。我看到 taglib 调用了此处可用的函数 OmniFaces.Highlight
:
如何覆盖此函数以使用我自己的实现?
我目前看到的唯一方法是覆盖 Java class org.omnifaces.component.script.Highlight
以调用另一个函数名称。
还有别的方法吗?我不喜欢覆盖所有 class 内容,因为下次我更新 Omnifaces 时,我需要检查 class 是否已更改。
只需在 JavaScript 上下文中重新定义函数即可。
OmniFaces.Highlight.apply = function(clientIds, styleClass, doFocus) {
// ...
}
您只需确保此函数在加载 omnifaces.js
后定义。您可以通过 <h:body>
.
中的 <h:outputScript target="head">
将脚本包含在函数中来确保这一点
<h:head>
...
</h:head>
<h:body>
<h:outputScript name="yourscript.js" target="head" />
...
</h:body>
或者,post issue 给 OmniFaces 人员,让他们实现您想要更改的所需功能。
我想覆盖从 Omnifaces 的 o:highlight
组件调用的 Javascript 函数。我看到 taglib 调用了此处可用的函数 OmniFaces.Highlight
:
如何覆盖此函数以使用我自己的实现?
我目前看到的唯一方法是覆盖 Java class org.omnifaces.component.script.Highlight
以调用另一个函数名称。
还有别的方法吗?我不喜欢覆盖所有 class 内容,因为下次我更新 Omnifaces 时,我需要检查 class 是否已更改。
只需在 JavaScript 上下文中重新定义函数即可。
OmniFaces.Highlight.apply = function(clientIds, styleClass, doFocus) {
// ...
}
您只需确保此函数在加载 omnifaces.js
后定义。您可以通过 <h:body>
.
<h:outputScript target="head">
将脚本包含在函数中来确保这一点
<h:head>
...
</h:head>
<h:body>
<h:outputScript name="yourscript.js" target="head" />
...
</h:body>
或者,post issue 给 OmniFaces 人员,让他们实现您想要更改的所需功能。