首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改jquery对话标题

更改jquery对话标题
EN

Stack Overflow用户
提问于 2013-10-23 18:28:00
回答 3查看 1.5K关注 0票数 3

我有一个小提琴http://jsfiddle.net/cdG94/2/,我试图改变jquery对话,当我使用jQuery1.9或更低时,title..It工作得很好,但是当我转到更高的库时,它只是直接显示..am,我在这里做错了一些事情,.I使用jQuery1.10.2,Jquery UI - v1.10.3。

代码语言:javascript
复制
<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&nbsp<span style=\"font-size:smaller;\">Testing the HTML .</span>";
               }
});
$('#opener').click(function() {
    $('#wrapper').dialog('open');
    return false;
});

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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团队的建议

代码语言:javascript
复制
$.widget("ui.dialog", $.extend({}, $.ui.dialog.prototype, {
    _title: function (title) {
        if (!this.options.title) {
            title.html("&#160;");
        }
        title.html(this.options.title);
    }
}));

但是,请注意(如果允许用户提供的输入出现在标题中) XSS漏洞的潜在可能性,这是更改的最初原因!

(http://jsfiddle.net/alnitak/bJ47w/演示)

票数 3
EN

Stack Overflow用户

发布于 2013-10-23 18:47:09

只要title选项从html更改为文本,您就可以在jQuery UI对话框窗口标题中调整小的hack以面对html内容。

--这不是最佳实践,但有时可能是一个解决方案。下面是一个示例:

在创建对话框并手动更改标题.html时触发函数

代码语言:javascript
复制
$('#wrapper').dialog({
    autoOpen: false,
    minHeight: 400,
    minWidth: 600,
    create: function () {
        $('#wrapper').prev().html($('#wrapper').prev().text());
    },
    title: function () {
        return "Testing&nbsp<span style=\"font-size:smaller;\">Testing the HTML .</span>";
    }
});
$('#opener').click(function () {
    $('#wrapper').dialog('open');
    return false;
});

这是小提琴:http://jsfiddle.net/zur4ik/cdG94/8/

票数 3
EN

Stack Overflow用户

发布于 2013-10-23 18:37:28

就像其他人说的那样,新版本的JQuery UI不使用HTML。

然而,看起来你只是想让文本变小。为什么不使用CSS来做到这一点:

代码语言:javascript
复制
.ui-dialog-title{
    font-size: smaller !important;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19549577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档