Index: _source/core/htmlparser/basicwriter.js
===================================================================
--- _source/core/htmlparser/basicwriter.js (revision 5020)
+++ _source/core/htmlparser/basicwriter.js (working copy)
@@ -60,8 +60,8 @@
*/
attribute : function( attName, attValue )
{
- // Browsers don't always escape quote in attribute values. (#4683)
- attValue = attValue.replace( /"/g, '"' )
+ if ( CKEDITOR.env.ie )
+ attValue = CKEDITOR.tools.htmlEncode( attValue );
this._.output.push( ' ', attName, '="', attValue, '"' );
},
Index: _source/core/tools.js
===================================================================
--- _source/core/tools.js (revision 5020)
+++ _source/core/tools.js (working copy)
@@ -316,9 +316,17 @@
return fix2( text ).replace( / /g, ' ' );
} :
fix2;
+
+ var fix4 = ( standard( '"' ) == '"') ?
+ function( text )
+ {
+ // Browsers don't always escape quote in attribute values #4683, #4719.
+ return fix3( text ).replace(/"/g, '"');
+ } :
+ fix3;
+
+ this.htmlEncode = fix4;
- this.htmlEncode = fix3;
-
return this.htmlEncode( text );
},
Index: _source/plugins/htmlwriter/plugin.js
===================================================================
--- _source/plugins/htmlwriter/plugin.js (revision 5020)
+++ _source/plugins/htmlwriter/plugin.js (working copy)
@@ -173,10 +173,9 @@
{
if ( this.forceSimpleAmpersand )
attValue = attValue.replace( /&/, '&' );
+ if ( CKEDITOR.env.ie )
+ attValue = CKEDITOR.tools.htmlEncode( attValue );
- // Browsers don't always escape quote in attribute values. (#4683)
- attValue = attValue.replace( /"/g, '"' )
-
this._.output.push( ' ', attName, '="', attValue, '"' );
},