【问题标题】:How I can override some Javascript function from Omnifaces?如何覆盖 Omnifaces 中的一些 Javascript 函数?
【发布时间】:2016-11-07 23:07:17
【问题描述】:

我想覆盖从 Omnifaces 的 o:highlight 组件调用的 Javascript 函数。我看到 taglib 调用了函数 OmniFaces.Highlight 这里可用:

https://github.com/omnifaces/omnifaces/blob/develop/src/main/resources/META-INF/resources/omnifaces/highlight.unminified.js

我如何重写这个函数来使用我自己的实现?

此时我看到的唯一方法是重写 Java 类 org.omnifaces.component.script.Highlight 以调用另一个函数名。

还有其他方法吗?我不喜欢覆盖所有课程内容,因为下次我更新 Omnifaces 时,我需要检查课程是否已更改。

【问题讨论】:

    标签: jsf omnifaces


    【解决方案1】:

    只需在 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>
    

    或者,向 OmniFaces 人员发布issue,让他们实现您打算更改的所需功能。

    【讨论】:

      猜你喜欢
      • 2011-07-21
      • 2011-05-02
      • 2010-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-26
      • 2016-10-07
      相关资源
      最近更新 更多