JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.5
[ckeditor.git] / _source / core / dom / document.js
index a68ddf5..1435fbd 100644 (file)
@@ -165,6 +165,9 @@ CKEDITOR.tools.extend( CKEDITOR.dom.document.prototype,
                getHead : function()\r
                {\r
                        var head = this.$.getElementsByTagName( 'head' )[0];\r
+                       if ( !head )\r
+                               head = this.getDocumentElement().append( new CKEDITOR.dom.element( 'head' ), true );\r
+                       else\r
                        head = new CKEDITOR.dom.element( head );\r
 \r
                        return (\r
@@ -220,5 +223,29 @@ CKEDITOR.tools.extend( CKEDITOR.dom.document.prototype,
                                {\r
                                        return win;\r
                                })();\r
+               },\r
+\r
+               /**\r
+                * Defines the document contents through document.write. Note that the\r
+                * previous document contents will be lost (cleaned).\r
+                * @since 3.5\r
+                * @param {String} html The HTML defining the document contents.\r
+                * @example\r
+                * document.write(\r
+                *     '<html>' +\r
+                *         '<head><title>Sample Doc</title></head>' +\r
+                *         '<body>Document contents created by code</body>' +\r
+                *      '</html>' );\r
+                */\r
+               write : function( html )\r
+               {\r
+                       // Don't leave any history log in IE. (#5657)\r
+                       this.$.open( 'text/html', 'replace' );\r
+\r
+                       // Support for custom document.domain in IE.\r
+                       CKEDITOR.env.isCustomDomain() &&  ( this.$.domain = document.domain );\r
+\r
+                       this.$.write( html );\r
+                       this.$.close();\r
                }\r
        });\r