JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.6.6.1
[ckeditor.git] / _source / plugins / preview / plugin.js
index a31ebfa..3132a45 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.html or http://ckeditor.com/license\r
 */\r
 \r
@@ -9,6 +9,8 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
 \r
 (function()\r
 {\r
+       var pluginPath;\r
+\r
        var previewCmd =\r
        {\r
                modes : { wysiwyg:1, source:1 },\r
@@ -79,14 +81,26 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
                                        '})() )';\r
                        }\r
 \r
+                       // With Firefox only, we need to open a special preview page, so\r
+                       // anchors will work properly on it. (#9047)\r
+                       if ( CKEDITOR.env.gecko )\r
+                       {\r
+                               window._cke_htmlToLoad = sHTML;\r
+                               sOpenUrl = pluginPath + 'preview.html';\r
+                       }\r
+\r
                        var oWindow = window.open( sOpenUrl, null, 'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width=' +\r
                                iWidth + ',height=' + iHeight + ',left=' + iLeft );\r
 \r
-                       if ( !isCustomDomain )\r
+                       if ( !isCustomDomain && !CKEDITOR.env.gecko )\r
                        {\r
-                               oWindow.document.open();\r
-                               oWindow.document.write( sHTML );\r
-                               oWindow.document.close();\r
+                               var doc = oWindow.document;\r
+                               doc.open();\r
+                               doc.write( sHTML );\r
+                               doc.close();\r
+\r
+                               // Chrome will need this to show the embedded. (#8016)\r
+                               CKEDITOR.env.webkit && setTimeout( function() { doc.body.innerHTML += ''; }, 0 );\r
                        }\r
                }\r
        };\r
@@ -98,6 +112,8 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
        {\r
                init : function( editor )\r
                {\r
+                       pluginPath = this.path;\r
+\r
                        editor.addCommand( pluginName, previewCmd );\r
                        editor.ui.addButton( 'Preview',\r
                                {\r