3

私はこのフィドルhttp://jsfiddle.net/cdG94/2/を持っており、jquery UIダイアログのタイトルを変更しようとしています..Jquery 1.9以下を使用している場合は正常に動作しますが、より高いライブラリに移動するとそれだけですHTMLを直接表示します..ここで何か間違ったことをしています.Jquery 1.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&nbsp<span style=\"font-size:smaller;\">Testing the HTML .</span>";
               }
});
$('#opener').click(function() {
    $('#wrapper').dialog('open');
    return false;
});

ありがとう

4

3 に答える 3

3

jQuery UI 1.10では、ダイアログのタイトルを設定する代わりにtitle使用するようにオプションを変更しました。.text().html()

jQuery UI 1.10リリース ノートから:

タイトル オプションを HTML からテキストに変更

( #6016 ) ダイアログのタイトルは、コンテンツ要素のtitleオプションまたはtitle属性を介して制御されます。タイトルは以前は HTML として設定されていましたが、タイトルは一般にプレーン テキストであるため、値が HTML として設定されていることに気付いていないユーザーに対して、スクリプトの脆弱性を簡単に引き起こす可能性があります。その結果、タイトルはテキストとして設定されるようになりました。ダイアログのタイトルにカスタム書式を追加する必要がある場合は_title()、ダイアログのメソッドをオーバーライドできます。

したがって、元の動作に戻すには、jQuery UI チームの推奨に従って、これを行うことができます。

$.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/のデモ)

于 2013-10-23T18:33:48.170 に答える
0

他の人が言ったように、新しいバージョンの JQuery UI は HTML を使用しません。

ただし、テキストを小さくしようとしているだけのようです。CSS を使用してこれを行わない理由:

.ui-dialog-title{
    font-size: smaller !important;
}
于 2013-10-23T18:37:28.817 に答える