我知道这已经过时了,但它因手头的问题而受到打击,最终很简单,今天发生在我身上。
我正在使用 .text() 而不是 .html() 将格式化文本字符串添加到对话框 div 错误的方式:
$( "#dialog-message-div" ).text(str);
这导致它转义所有 HTML 字符...删除格式,但更糟糕的是向非技术用户显示“技术”内容...HTML!
正确的方法:只需将 .text() 更改为 .html() ,它就像一个魅力。
$( "#dialog-message-div" ).html(str);
取自与下载捆绑的 jQueryUI 示例 index.html。
<html lang="us">
<head>
<meta charset="utf-8">
<title>jQuery UI Example Page</title>
<link href="css/redmond/jquery-ui-1.10.3.custom.css" rel="stylesheet">
<script src="js/jquery-1.9.1.js"></script>
<script src="js/jquery-ui-1.10.3.custom.js"></script>
<script>
$(function() {
$( "#dialog" ).dialog({
autoOpen: false,
width: 400,
resizable: false,
buttons: [
{
text: "Ok",
click: function() {
$( this ).dialog( "close" );
}
},
{
text: "Cancel",
click: function() {
$( this ).dialog( "close" );
}
}
]
});
// Link to open the dialog
$( "#dialog-link" ).click(function( event ) {
$( "#dialog" ).dialog( "open" );
var str = "<p>Lorem ipsum dolor sit amet, <b>consectetur adipisicing elit</b>, sed do eiusmod <i>tempor</i><br /><br /><br />incididunt ut labore et dolore magna aliqua. <br />Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>";
event.preventDefault();
//wrong way
//$( "#dialog" ).text(str);
$( "#dialog" ).html(str);
});
});
</script>
</head>
<body>
<button id="dialog-link">Dialog Button</button>
<div id="dialog" title="Dialog Title">
</div>
</body>
</html>