2015-10-01 69 views
0

我正在使用Omnifaces ajax.oncomplete函數在我的JSF 2頁面中顯示toastr消息。我面臨的問題是我正在開發一個frensh web應用程序,並且我們使用了很多引號(')。當我添加了報價,瀏覽器會拋出一個異常的XML異常:Ajax.oncomplete不正確地轉義單引號

malformedXML: missing) after argument list 

雖然我使用的braqueted斜線,使之忽略的報價,並把它作爲一個字符串:

Ajax.oncomplete("toastr.warning('Vérifier l\'adresse e-mail saisie.')"); 

是有辦法通過這個異常?

回答

1

\也是Java本身的轉義字符。所以,最終\被Java剝離了。

您需要雙重轉義才能表示文字\,因此它在JavaScript中以真實\的形式出現。

Ajax.oncomplete("toastr.warning('Vérifier l\\'adresse e-mail saisie.')"); 

或者,如果這些字符串不是硬編碼,因此從動態源來了,你基本上因而需要進行自動轉義,然後更好地利用Ajax#data()自動讓OmniFaces編碼的Java變量作爲正確格式化的JSON對象可通過在JavaScript上下文中的OmniFaces.Ajax.data獲得。

Ajax.data("message", "Vérifier l'adresse e-mail saisie."); 
Ajax.oncomplete("toastr.warning(OmniFaces.Ajax.data.message)"); 

這樣你就不用擔心逃避大驚小怪了。

+0

謝謝你一如既往 –