2016-11-07 6 views
1

Omnifacesのo:highlightコンポーネントから呼び出されたJavascript関数をオーバーライドしたいと考えています。私は私の独自の実装を使用するには、この機能を無効にするにはどうすればよいOmnifacesからいくつかのJavascript関数をどのようにオーバーライドすることができますか?

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

:私は、タグライブラリが機能ここで利用可能OmniFaces.Highlightを呼び出すことがわかり?

この時点で表示される唯一の方法は、Javaクラスorg.omnifaces.component.script.Highlightをオーバーライドして別の関数名を呼び出すことです。

別の方法がありますか?私はすべてのクラスの内容をオーバーライドするのは好きではありません。なぜなら、次回は全般を更新するので、クラスが変更されたかどうかを確認する必要があるからです。

答えて

1

JavaScriptコンテキストで関数を再定義するだけです。

OmniFaces.Highlight.apply = function(clientIds, styleClass, doFocus) { 
    // ... 
} 

はあなただけomnifaces.jsがロードされた後、この関数はに定義されていることを確認する必要があります。これを確実にするには、 <h:body>の中に関数を含むスクリプトを含めます。

<h:head> 
    ... 
</h:head> 
<h:body> 
    <h:outputScript name="yourscript.js" target="head" /> 
    ... 
</h:body> 

また、変更するintented目的の機能を実装するためにOmniFacesみんなにissueを投稿し、それらを持っています。

関連する問題