X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=_source%2Fplugins%2Fpreview%2Fplugin.js;h=fd6e633118fb23e90bb16c01629df0f6c8aab87b;hb=2f22c0c38f17e75be5541089076885442aaa2377;hp=2238f920e74e09653a7279a91ad0a4e16e1c8702;hpb=ea7e3453c7b0f023b050aca6d9f83ab372860d91;p=ckeditor.git diff --git a/_source/plugins/preview/plugin.js b/_source/plugins/preview/plugin.js index 2238f92..fd6e633 100644 --- a/_source/plugins/preview/plugin.js +++ b/_source/plugins/preview/plugin.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.html or http://ckeditor.com/license */ @@ -13,22 +13,33 @@ For licensing, see LICENSE.html or http://ckeditor.com/license { modes : { wysiwyg:1, source:1 }, canUndo : false, + readOnly : 1, exec : function( editor ) { var sHTML, - isCustomDomain = CKEDITOR.env.ie && document.domain != window.location.hostname; - if ( editor.config.fullPage ) - sHTML = editor.getData(); + config = editor.config, + baseTag = config.baseHref ? '' : '', + isCustomDomain = CKEDITOR.env.isCustomDomain(); + + if ( config.fullPage ) + { + sHTML = editor.getData() + .replace( //, '$&' + baseTag ) + .replace( /[^>]*(?=<\/title>)/, '$& — ' + editor.lang.preview ); + } else { var bodyHtml = ' 0 ) ? '' : ''; + body = editor.document && editor.document.getBody(); + + if ( body ) + { + if ( body.getAttribute( 'id' ) ) + bodyHtml += 'id="' + body.getAttribute( 'id' ) + '" '; + if ( body.getAttribute( 'class' ) ) + bodyHtml += 'class="' + body.getAttribute( 'class' ) + '" '; + } - if ( body.getAttribute( 'id' ) ) - bodyHtml += 'id="' + body.getAttribute( 'id' ) + '" '; - if ( body.getAttribute( 'class' ) ) - bodyHtml += 'class="' + body.getAttribute( 'class' ) + '" '; bodyHtml += '>'; sHTML = @@ -37,7 +48,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license '' + baseTag + '' + editor.lang.preview + '' + - '' + + CKEDITOR.tools.buildStyleHtml( editor.config.contentsCss ) + '' + bodyHtml + editor.getData() + ''; @@ -73,8 +84,13 @@ For licensing, see LICENSE.html or http://ckeditor.com/license if ( !isCustomDomain ) { - oWindow.document.write( sHTML ); - oWindow.document.close(); + var doc = oWindow.document; + doc.open(); + doc.write( sHTML ); + doc.close(); + + // Chrome will need this to show the embedded. (#8016) + CKEDITOR.env.webkit && setTimeout( function() { doc.body.innerHTML += ''; }, 0 ); } } };