X-Git-Url: https://scm.cri.ensmp.fr/git/ckeditor.git/blobdiff_plain/256592bf803e851aa7fc953e08a6e9e58d970f8c..871bad8291b6dbc29d489d95d185458caab25158:/skins/ckeditor/_source/plugins/preview/plugin.js diff --git a/skins/ckeditor/_source/plugins/preview/plugin.js b/skins/ckeditor/_source/plugins/preview/plugin.js new file mode 100644 index 0000000..a31ebfa --- /dev/null +++ b/skins/ckeditor/_source/plugins/preview/plugin.js @@ -0,0 +1,109 @@ +/* +Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved. +For licensing, see LICENSE.html or http://ckeditor.com/license +*/ + +/** + * @file Preview plugin. + */ + +(function() +{ + var previewCmd = + { + modes : { wysiwyg:1, source:1 }, + canUndo : false, + readOnly : 1, + exec : function( editor ) + { + var sHTML, + 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 = '' + + '' + + baseTag + + '' + editor.lang.preview + '' + + CKEDITOR.tools.buildStyleHtml( editor.config.contentsCss ) + + '' + bodyHtml + + editor.getData() + + ''; + } + + var iWidth = 640, // 800 * 0.8, + iHeight = 420, // 600 * 0.7, + iLeft = 80; // (800 - 0.8 * 800) /2 = 800 * 0.1. + try + { + var screen = window.screen; + iWidth = Math.round( screen.width * 0.8 ); + iHeight = Math.round( screen.height * 0.7 ); + iLeft = Math.round( screen.width * 0.1 ); + } + catch ( e ){} + + var sOpenUrl = ''; + if ( isCustomDomain ) + { + window._cke_htmlToLoad = sHTML; + sOpenUrl = 'javascript:void( (function(){' + + 'document.open();' + + 'document.domain="' + document.domain + '";' + + 'document.write( window.opener._cke_htmlToLoad );' + + 'document.close();' + + 'window.opener._cke_htmlToLoad = null;' + + '})() )'; + } + + var oWindow = window.open( sOpenUrl, null, 'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width=' + + iWidth + ',height=' + iHeight + ',left=' + iLeft ); + + if ( !isCustomDomain ) + { + oWindow.document.open(); + oWindow.document.write( sHTML ); + oWindow.document.close(); + } + } + }; + + var pluginName = 'preview'; + + // Register a plugin named "preview". + CKEDITOR.plugins.add( pluginName, + { + init : function( editor ) + { + editor.addCommand( pluginName, previewCmd ); + editor.ui.addButton( 'Preview', + { + label : editor.lang.preview, + command : pluginName + }); + } + }); +})();