我有一个小提琴http://jsfiddle.net/cdG94/2/,我试图改变jquery对话,当我使用jQuery1.9或更低时,title..It工作得很好,但是当我转到更高的库时,它只是直接显示..am,我在这里做错了一些事情,.I使用jQuery1.10.2,Jquery UI - v1.10.3。
<button id="opener">Open the dialog</button>
<div id="wrapper">
<p>Some txt goes here</p>
</div>
$('#wrapper').dialog({
autoOpen: false,
minHeight: 400,
minWidth: 600,
title: function () {
return "Testing <span style=\"font-size:smaller;\">Testing the HTML .</span>";
}
});
$('#opener').click(function() {
$('#wrapper').dialog('open');
return false;
});谢谢
发布于 2013-10-23 18:33:48
在jQuery UI 1.10中,他们更改了title选项,以便使用.text()而不是.html()设置对话框的标题:
来自jQuery UI 1.10 发布说明
将标题选项从HTML改为text (#6016)对话框标题是通过
title选项或内容元素的title属性来控制的。标题以前被设置为HTML,但是由于标题通常是纯文本,这很容易对没有意识到值被设置为HTML的用户造成脚本漏洞。因此,标题现在设置为文本。如果需要向对话框标题添加自定义格式,则可以重写对话框上的_title()方法。
为了恢复原来的行为,您可以这样做,根据jQuery UI团队的建议
$.widget("ui.dialog", $.extend({}, $.ui.dialog.prototype, {
_title: function (title) {
if (!this.options.title) {
title.html(" ");
}
title.html(this.options.title);
}
}));但是,请注意(如果允许用户提供的输入出现在标题中) XSS漏洞的潜在可能性,这是更改的最初原因!
(http://jsfiddle.net/alnitak/bJ47w/演示)
发布于 2013-10-23 18:47:09
只要title选项从html更改为文本,您就可以在jQuery UI对话框窗口标题中调整小的hack以面对html内容。
--这不是最佳实践,但有时可能是一个解决方案。下面是一个示例:
在创建对话框并手动更改标题.html时触发函数
$('#wrapper').dialog({
autoOpen: false,
minHeight: 400,
minWidth: 600,
create: function () {
$('#wrapper').prev().html($('#wrapper').prev().text());
},
title: function () {
return "Testing <span style=\"font-size:smaller;\">Testing the HTML .</span>";
}
});
$('#opener').click(function () {
$('#wrapper').dialog('open');
return false;
});这是小提琴:http://jsfiddle.net/zur4ik/cdG94/8/
发布于 2013-10-23 18:37:28
就像其他人说的那样,新版本的JQuery UI不使用HTML。
然而,看起来你只是想让文本变小。为什么不使用CSS来做到这一点:
.ui-dialog-title{
font-size: smaller !important;
}https://stackoverflow.com/questions/19549577
复制相似问题