在jQuery UI 1.10的对话框标题中使用HTML

http://jqueryui.com/upgrade-guide/1.10/#changed-title-option-from-html-to-text

jQuery UI 1.10使得它的对话框标题只能是文本(无html),以防止脚本漏洞。 我不允许用户input来生成这个标题,所以我仍然想使用HTML,主要是在标题的左边显示一个图标。

我要发布我的解决scheme,因为我还没有看到任何其他人要求或回答这个问题。 希望这会帮助别人,或者别人可能会有更好的方法。

更多的信息,为什么他们这样做: http : //bugs.jqueryui.com/ticket/6016

这将覆盖设置jQuery UI对话标题时使用的函数,允许它包含HTML。

$.widget("ui.dialog", $.extend({}, $.ui.dialog.prototype, { _title: function(title) { if (!this.options.title ) { title.html(" "); } else { title.html(this.options.title); } } })); 

如果您不想重写jQuery的_title方法,可以在jQuery对话框的打开事件的title元素上使用html,append或类似的方法,如下所示:

 $("#element").dialog({ open: function() { $(this).find("span.ui-dialog-title").append("<span class='title'>" + subtitle + "</span>"); } }); 

上面的代码正确地parsing了HTML,同时绕过了jQuery的title方法。 而且,由于在公开活动中发生,用户体验依然无缝。 只是在一个项目上做了这个,而且工作得很好。