Как я могу переопределить некоторые функции Javascript из Omnifaces?
Я хочу переопределить функцию Javascript, вызываемую из o:highlight
компонент от Omnifaces. Я вижу, что taglib вызывает функцию OmniFaces.Highlight
доступно здесь:
Как я могу переопределить эту функцию, чтобы использовать мою собственную реализацию?
Единственный способ, которым я сейчас вижу, это переопределение класса Java org.omnifaces.component.script.Highlight
вызвать другое имя функции.
Есть другой способ? Я не люблю переопределять все содержимое класса, потому что в следующий раз, когда я обновлю Omnifaces, мне нужно проверить, был ли изменен класс.
1 ответ
Просто переопределите функцию в контексте JavaScript.
OmniFaces.Highlight.apply = function(clientIds, styleClass, doFocus) {
// ...
}
Вам нужно только убедиться, что эта функция определена после omnifaces.js
загружен. Вы можете убедиться в этом, включив свой скрипт в функцию через <h:outputScript target="head">
внутри <h:body>
,
<h:head>
...
</h:head>
<h:body>
<h:outputScript name="yourscript.js" target="head" />
...
</h:body>
Кроме того, можно опубликовать вопрос для ребят из OmniFaces и попросить их реализовать желаемую функциональность, которую вы намеревались изменить.