JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.1
[ckeditor.git] / _source / plugins / preview / plugin.js
index fc4f694..dd53d43 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.html or http://ckeditor.com/license\r
 */\r
 \r
@@ -16,19 +16,29 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
                exec : function( editor )\r
                {\r
                        var sHTML,\r
+                               config = editor.config,\r
+                               baseTag = config.baseHref ? '<base href="' + config.baseHref + '"/>' : '',\r
                                isCustomDomain = CKEDITOR.env.isCustomDomain();\r
-                       if ( editor.config.fullPage )\r
-                               sHTML = editor.getData();\r
+\r
+                       if ( config.fullPage )\r
+                       {\r
+                               sHTML = editor.getData()\r
+                                               .replace( /<head>/, '$&' + baseTag )\r
+                                               .replace( /[^>]*(?=<\/title>)/, editor.lang.preview );\r
+                       }\r
                        else\r
                        {\r
                                var bodyHtml = '<body ',\r
-                                       body = CKEDITOR.document.getBody(),\r
-                                       baseTag = ( editor.config.baseHref.length > 0 ) ? '<base href="' + editor.config.baseHref + '" _cktemp="true"></base>' : '';\r
+                                               body = editor.document && editor.document.getBody();\r
+\r
+                               if ( body )\r
+                               {\r
+                                       if ( body.getAttribute( 'id' ) )\r
+                                               bodyHtml += 'id="' + body.getAttribute( 'id' ) + '" ';\r
+                                       if ( body.getAttribute( 'class' ) )\r
+                                               bodyHtml += 'class="' + body.getAttribute( 'class' ) + '" ';\r
+                               }\r
 \r
-                               if ( body.getAttribute( 'id' ) )\r
-                                       bodyHtml += 'id="' + body.getAttribute( 'id' ) + '" ';\r
-                               if ( body.getAttribute( 'class' ) )\r
-                                       bodyHtml += 'class="' + body.getAttribute( 'class' ) + '" ';\r
                                bodyHtml += '>';\r
 \r
                                sHTML =\r
@@ -37,9 +47,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
                                        '<head>' +\r
                                        baseTag +\r
                                        '<title>' + editor.lang.preview + '</title>' +\r
-                                       '<link type="text/css" rel="stylesheet" href="' +\r
-                                       [].concat( editor.config.contentsCss ).join( '"><link type="text/css" rel="stylesheet" href="' ) +\r
-                                       '">' +\r
+                                       CKEDITOR.tools.buildStyleHtml( editor.config.contentsCss ) +\r
                                        '</head>' + bodyHtml +\r
                                        editor.getData() +\r
                                        '</body></html>';\r