51

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

jQuery UI 1.10 では、スクリプトの脆弱性を防ぐために、ダイアログのタイトルがテキストのみ (html ではない) になるようにしました。ユーザー入力によるこのタイトルの生成を許可していないので、主にタイトルの左側にアイコンを表示するために HTML を使用したいと考えています。

他の誰かがこれを尋ねたり答えたりするのを見たことがないので、この問題の解決策を投稿します。うまくいけば、それが他の誰かを助けるか、他の誰かがより良いアプローチを持っているかもしれません.

彼らがそれを行った理由に関する詳細情報: http://bugs.jqueryui.com/ticket/6016

4

3 に答える 3

79

これは、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);
        }
    }
}));
于 2013-01-23T20:28:49.660 に答える
0

これにより、ダイアログを開始した後にタイトルが変更されます

$('#element').dialog(options);

var dialogTitle = $('#element').closest('.ui-dialog').find('.ui-dialog-title');
dialogTitle.html('<strong>hello world</strong>');
于 2019-03-05T09:58:17.073 に答える