簡體   English   中英

將HTML字符串傳遞給jQuery函數

[英]Passing an HTML string to jQuery function

我正在開發一個從數據庫中的記錄中檢索一些HTML代碼的應用程序。 然后,將這些字符串提取並插入到特定的div內。 現在,我通過從Java傳遞變量並將其打印在JSP的div中來實現此目的。 現在,我正在嘗試使用外部jQuery函數來完成此任務,並且我正努力將此String傳遞給jQuery函數。

我嘗試過這樣的事情:

<script>
var message = <%=message %>;
</script>
<script src="files/js.js" type="text/javascript"></script>

但是,一旦碰到外部函數,它似乎無法解釋var(我嘗試使用StringEscapeUtils,但這不能解決問題)。

嘗試:

var message = '<%= message %>';
var message = '<%=message %>';
$(message); // we have a jQuery object with a property 
            // for each html element in the message string!

當您遇到此類問題時,請查看頁面的源代碼。 message如何呈現? 我的猜測可能是

var message = Passing an HTML string to jQuery function;

這是無效的。 將代碼括在撇號中將解決這種情況。

var message = '<%= message %>';

我通常也將這樣的全局對象放在窗口對象上,以便於查找

window.message = '<%= message %>';
var message= <%= message %>;

您不僅需要在消息文本周圍加上一些引號,還需要對JavaScript字符串文字進行適當的轉義。 否則,消息中的引號會破壞它,並可能使您容易受到跨站點腳本攻擊。

var message= '<%= message.replaceAll("\\\\", "\\\\\\\\").replaceAll("'", "\\\\'") %>';

認為這是正確的反斜杠數量,但是Java String文字反斜杠和正則表達式反斜杠之間的交互使它們失去了理智。 另外,如果需要包含換行符之類的控制代碼,則也需要轉義這些代碼。

總而言之,最好將任務交給一個JSON編碼庫,該庫將正確輸出各種JavaScript類型,而不僅僅是字符串。 例如。 使用json-simple:

var message= <%= JSONValue.toJSONString(message) %>;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM