Dialog: Escape closeText option before passing it to button

Ref gh-1632
Fixes jquery/api.jqueryui.com#281
This commit is contained in:
Jörn Zaefferer 2015-10-28 19:11:07 +01:00
parent 3e9e9d58ec
commit 9644e7bae9
2 changed files with 8 additions and 3 deletions

View File

@ -206,7 +206,7 @@ test( "closeOnEscape", function() {
} ); } );
test( "closeText", function() { test( "closeText", function() {
expect( 3 ); expect( 4 );
var element = $( "<div></div>" ).dialog(); var element = $( "<div></div>" ).dialog();
equal( $.trim( element.dialog( "widget" ).find( ".ui-dialog-titlebar-close" ).text() ), "Close", equal( $.trim( element.dialog( "widget" ).find( ".ui-dialog-titlebar-close" ).text() ), "Close",
@ -222,6 +222,11 @@ test( "closeText", function() {
equal( $.trim( element.dialog( "widget" ).find( ".ui-dialog-titlebar-close" ).text() ), "bar", equal( $.trim( element.dialog( "widget" ).find( ".ui-dialog-titlebar-close" ).text() ), "bar",
"closeText via option method" ); "closeText via option method" );
element.remove(); element.remove();
element = $( "<div></div>" ).dialog( { closeText: "<span>foo</span>" } );
equal( $.trim( element.dialog( "widget" ).find( ".ui-dialog-titlebar-close" ).text() ), "<span>foo</span>",
"closeText is escaped" );
element.remove();
} ); } );
test( "draggable", function() { test( "draggable", function() {

View File

@ -426,7 +426,7 @@ $.widget( "ui.dialog", {
// dialog in IE (#9312) // dialog in IE (#9312)
this.uiDialogTitlebarClose = $( "<button type='button'></button>" ) this.uiDialogTitlebarClose = $( "<button type='button'></button>" )
.button( { .button( {
label: this.options.closeText, label: $( "<a>" ).text( this.options.closeText ).html(),
icon: "ui-icon-closethick", icon: "ui-icon-closethick",
showLabel: false showLabel: false
} ) } )
@ -715,7 +715,7 @@ $.widget( "ui.dialog", {
this.uiDialogTitlebarClose.button( { this.uiDialogTitlebarClose.button( {
// Ensure that we always pass a string // Ensure that we always pass a string
label: "" + value label: $( "<a>" ).text( "" + this.options.closeText ).html()
} ); } );
} }