Ticket #123: 123.patch

File 123.patch, 33.7 kB (added by fredck, 9 months ago)

Proposal patch

  • editor/_source/classes/fckeditingarea.js

     
    5757 
    5858        if ( this.Mode == FCK_EDITMODE_WYSIWYG ) 
    5959        { 
    60                 // Create the editing area IFRAME. 
    61                 var oIFrame = this.IFrame = oTargetDocument.createElement( 'iframe' ) ; 
    62                  
    63                 // Firefox will render the tables inside the body in Quirks mode if the  
    64                 // source of the iframe is set to javascript. see #515 
    65                 if ( !FCKBrowserInfo.IsGecko ) 
    66                         oIFrame.src = 'javascript:void(0)' ; 
    67                  
    68                 oIFrame.frameBorder = 0 ; 
    69                 oIFrame.width = oIFrame.height = '100%' ; 
     60                // For FF, document.domain must be set only when different, otherwhise 
     61                // we'll strangely have "Permission denied" issues. 
     62                if ( FCK_IS_CUSTOM_DOMAIN ) 
     63                        html = '<script>document.domain="' + FCK_RUNTIME_DOMAIN + '";</script>' + html ; 
    7064 
    71                 // Append the new IFRAME to the target. 
    72                 eTargetElement.appendChild( oIFrame ) ; 
    73  
    7465                // IE has a bug with the <base> tag... it must have a </base> closer, 
    7566                // otherwise the all successive tags will be set as children nodes of the <base>. 
    7667                if ( FCKBrowserInfo.IsIE ) 
     
    10596                                this._BodyHTML = html ;                 // Invalid HTML input. 
    10697                } 
    10798 
     99                // Create the editing area IFRAME. 
     100                var oIFrame = this.IFrame = oTargetDocument.createElement( 'iframe' ) ; 
     101 
     102                oIFrame.frameBorder = 0 ; 
     103                oIFrame.width = oIFrame.height = '100%' ; 
     104 
     105                if ( FCK_IS_CUSTOM_DOMAIN && FCKBrowserInfo.IsIE ) 
     106                { 
     107                        window._FCKHtmlToLoad = html ; 
     108                        oIFrame.src = 'javascript:void( (function(){' + 
     109                                'document.open() ;' + 
     110                                'document.domain="' + document.domain + '" ;' + 
     111                                'document.write( window.parent._FCKHtmlToLoad );' + 
     112                                'document.close() ;' + 
     113                                'window.parent._FCKHtmlToLoad = null ;' + 
     114                                '})() )' ; 
     115                } 
     116                else if ( !FCKBrowserInfo.IsGecko ) 
     117                { 
     118                        // Firefox will render the tables inside the body in Quirks mode if the 
     119                        // source of the iframe is set to javascript. see #515 
     120                        oIFrame.src = 'javascript:void(0)' ; 
     121                } 
     122 
     123                // Append the new IFRAME to the target. For IE, it must be done after 
     124                // setting the "src", to avoid the "secure/unsecure" message under HTTPS. 
     125                eTargetElement.appendChild( oIFrame ) ; 
     126 
    108127                // Get the window and document objects used to interact with the newly created IFRAME. 
    109128                this.Window = oIFrame.contentWindow ; 
    110129 
     
    112131                // TODO: This error handler is not being fired. 
    113132                // this.Window.onerror = function() { alert( 'Error!' ) ; return true ; } 
    114133 
    115                 var oDoc = this.Document = this.Window.document ; 
     134                if ( !FCK_IS_CUSTOM_DOMAIN || !FCKBrowserInfo.IsIE ) 
     135                { 
     136                        var oDoc = this.Window.document ; 
    116137 
    117                 oDoc.open() ; 
    118                 oDoc.write( html ) ; 
    119                 oDoc.close() ; 
     138                        oDoc.open() ; 
     139                        oDoc.write( html ) ; 
     140                        oDoc.close() ; 
     141                } 
    120142 
    121143                // Firefox 1.0.x is buggy... ohh yes... so let's do it two times and it 
    122144                // will magically work. 
     
    126148                        return ; 
    127149                } 
    128150 
    129                 this.Window._FCKEditingArea = this ; 
     151                if ( oIFrame.readyState && oIFrame.readyState != 'completed' ) 
     152                { 
     153                        var editArea = this ; 
     154                        ( oIFrame.onreadystatechange = function() 
     155                        { 
     156                                if ( oIFrame.readyState == 'complete' ) 
     157                                { 
     158                                        oIFrame.onreadystatechange = null ; 
     159                                        editArea.Window._FCKEditingArea = editArea ; 
     160                                        FCKEditingArea_CompleteStart.call( editArea.Window ) ; 
     161                                } 
     162                        // It happened that IE changed the state to "complete" after the 
     163                        // "if" and before the "onreadystatechange" assignement, making we 
     164                        // lost the event call, so we do a manual call just to be sure. 
     165                        } )() ;  
     166                } 
     167                else 
     168                { 
     169                        this.Window._FCKEditingArea = this ; 
    130170 
    131                 // FF 1.0.x is buggy... we must wait a lot to enable editing because 
    132                 // sometimes the content simply disappears, for example when pasting 
    133                 // "bla1!<img src='some_url'>!bla2" in the source and then switching 
    134                 // back to design. 
    135                 if ( FCKBrowserInfo.IsGecko10 ) 
    136                         this.Window.setTimeout( FCKEditingArea_CompleteStart, 500 ) ; 
    137                 else 
    138                         FCKEditingArea_CompleteStart.call( this.Window ) ; 
     171                        // FF 1.0.x is buggy... we must wait a lot to enable editing because 
     172                        // sometimes the content simply disappears, for example when pasting 
     173                        // "bla1!<img src='some_url'>!bla2" in the source and then switching 
     174                        // back to design. 
     175                        if ( FCKBrowserInfo.IsGecko10 ) 
     176                                this.Window.setTimeout( FCKEditingArea_CompleteStart, 500 ) ; 
     177                        else 
     178                                FCKEditingArea_CompleteStart.call( this.Window ) ; 
     179                } 
    139180        } 
    140181        else 
    141182        { 
    142183                var eTextarea = this.Textarea = oTargetDocument.createElement( 'textarea' ) ; 
    143184                eTextarea.className = 'SourceField' ; 
    144185                eTextarea.dir = 'ltr' ; 
    145                 FCKDomTools.SetElementStyles( eTextarea,  
    146                         {  
    147                                 width   : '100%',  
    148                                 height  : '100%',  
    149                                 border  : 'none',  
     186                FCKDomTools.SetElementStyles( eTextarea, 
     187                        { 
     188                                width   : '100%', 
     189                                height  : '100%', 
     190                                border  : 'none', 
    150191                                resize  : 'none', 
    151192                                outline : 'none' 
    152193                        } ) ; 
     
    170211        } 
    171212 
    172213        var oEditorArea = this._FCKEditingArea ; 
    173          
     214 
     215        // Save this reference to be re-used later. 
     216        oEditorArea.Document = oEditorArea.Window.document ; 
     217 
    174218        oEditorArea.MakeEditable() ; 
    175219 
    176220        // Fire the "OnLoad" event. 
     
    232276                        // Disable the standard table editing features of Firefox. 
    233277                        oDoc.execCommand( 'enableInlineTableEditing', false, !FCKConfig.DisableFFTableHandles ) ; 
    234278                } 
    235                 catch (e)  
     279                catch (e) 
    236280                { 
    237281                        // In Firefox if the iframe is initially hidden it can't be set to designMode and it raises an exception 
    238282                        // So we set up a DOM Mutation event Listener on the HTML, as it will raise several events when the document is  visible again 
     
    247291function FCKEditingArea_Document_AttributeNodeModified( evt ) 
    248292{ 
    249293        var editingArea = evt.currentTarget.contentWindow._FCKEditingArea ; 
    250          
     294 
    251295        // We want to run our function after the events no longer fire, so we can know that it's a stable situation 
    252296        if ( editingArea._timer ) 
    253297                window.clearTimeout( editingArea._timer ) ; 
    254298 
    255         editingArea._timer = FCKTools.SetTimeout( FCKEditingArea_MakeEditableByMutation, 1000, editingArea ) ;   
     299        editingArea._timer = FCKTools.SetTimeout( FCKEditingArea_MakeEditableByMutation, 1000, editingArea ) ; 
    256300} 
    257301 
    258302// This function ideally should be called after the document is visible, it does clean up of the 
     
    313357        // Only apply the fix when in a block and the block is empty. 
    314358        var parentNode = range.parentElement() ; 
    315359 
    316         if ( ! ( parentNode.childNodes.length == 0 && (  
    317                                         FCKListsLib.BlockElements[parentNode.nodeName.toLowerCase()] ||  
     360        if ( ! ( parentNode.childNodes.length == 0 && ( 
     361                                        FCKListsLib.BlockElements[parentNode.nodeName.toLowerCase()] || 
    318362                                        FCKListsLib.NonEmptyBlockElements[parentNode.nodeName.toLowerCase()] ) ) ) 
    319363                return ; 
    320364 
  • editor/_source/classes/fckpanel.js

     
    3434 
    3535        if ( FCKBrowserInfo.IsIE ) 
    3636        { 
     37                // This is a trick to IE6 (not IE7). The original domain must be set 
     38                // before creating the popup, so we are able to take a refence to the 
     39                // document inside of it, and the set the proper domain for it. (#123) 
     40                if ( FCK_IS_CUSTOM_DOMAIN ) 
     41                        document.domain = FCK_ORIGINAL_DOMAIN ; 
     42                 
    3743                // Create the Popup that will hold the panel. 
    3844                this._Popup     = this._Window.createPopup() ; 
    3945                oDocument = this.Document = this._Popup.document ; 
    4046 
     47                // Set the proper domain inside the popup. 
     48                if ( FCK_IS_CUSTOM_DOMAIN ) 
     49                        document.domain = oDocument.domain = FCK_RUNTIME_DOMAIN ; 
     50 
    4151                FCK.IECleanup.AddItem( this, FCKPanel_Cleanup ) ; 
    4252        } 
    4353        else 
  • editor/_source/classes/fckxml_gecko.js

     
    2626        LoadUrl : function( urlToCall ) 
    2727        { 
    2828                this.Error = false ; 
    29                 var oFCKXml = this ; 
    3029 
     30                var oXml ; 
    3131                var oXmlHttp = FCKTools.CreateXmlObject( 'XmlHttp' ) ; 
    32                 oXmlHttp.open( "GET", urlToCall, false ) ; 
     32                oXmlHttp.open( 'GET', urlToCall, false ) ; 
    3333                oXmlHttp.send( null ) ; 
    3434 
    3535                if ( oXmlHttp.status == 200 || oXmlHttp.status == 304 ) 
    36                         this.DOMDocument = oXmlHttp.responseXML ; 
     36                        oXml = oXmlHttp.responseXML ; 
    3737                else if ( oXmlHttp.status == 0 && oXmlHttp.readyState == 4 ) 
    38                         this.DOMDocument = oXmlHttp.responseXML ; 
     38                        oXml = oXmlHttp.responseXML ; 
    3939                else 
    40                         this.DOMDocument = null ; 
     40                        oXml = null ; 
    4141 
    42                 if ( this.DOMDocument == null || this.DOMDocument.firstChild == null ) 
     42                if ( oXml ) 
    4343                { 
     44                        // Try to access something on it. 
     45                        try 
     46                        { 
     47                                var test = oXml.firstChild ; 
     48                        } 
     49                        catch (e) 
     50                        { 
     51                                // If document.domain has been changed (#123), we'll have a security 
     52                                // error at this point. The workaround here is parsing the responseText: 
     53                                // http://alexander.kirk.at/2006/07/27/firefox-15-xmlhttprequest-reqresponsexml-and-documentdomain/ 
     54                                oXml = (new DOMParser()).parseFromString( oXmlHttp.responseText, 'text/xml' ) ; 
     55                        } 
     56                } 
     57 
     58                if ( !oXml || !oXml.firstChild ) 
     59                { 
    4460                        this.Error = true ; 
    45                         if (window.confirm( 'Error loading "' + urlToCall + '"\r\nDo you want to see more info?' ) ) 
    46                                 alert( 'URL requested: "' + urlToCall + '"\r\n' + 
    47                                                         'Server response:\r\nStatus: ' + oXmlHttp.status + '\r\n' + 
    48                                                         'Response text:\r\n' + oXmlHttp.responseText ) ; 
    49  
     61                        if ( window.confirm( 'Error loading "' + urlToCall + '" (HTTP Status: ' + oXmlHttp.status + ').\r\nDo you want to see the server response dump?' ) ) 
     62                                alert( oXmlHttp.responseText ) ; 
    5063                } 
     64                 
     65                this.DOMDocument = oXml ; 
    5166        }, 
    5267 
    5368        SelectNodes : function( xpath, contextNode ) 
  • editor/_source/internals/fck.js

     
    507507 
    508508        Preview : function() 
    509509        { 
    510                 var iWidth      = FCKConfig.ScreenWidth * 0.8 ; 
    511                 var iHeight     = FCKConfig.ScreenHeight * 0.7 ; 
    512                 var iLeft       = ( FCKConfig.ScreenWidth - iWidth ) / 2 ; 
    513                 var oWindow = window.open( '', null, 'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width=' + iWidth + ',height=' + iHeight + ',left=' + iLeft ) ; 
    514  
    515510                var sHTML ; 
    516511 
    517512                if ( FCKConfig.FullPage ) 
     
    535530                                '</body></html>' ; 
    536531                } 
    537532 
    538                 oWindow.document.write( sHTML ); 
    539                 oWindow.document.close(); 
     533                var iWidth      = FCKConfig.ScreenWidth * 0.8 ; 
     534                var iHeight     = FCKConfig.ScreenHeight * 0.7 ; 
     535                var iLeft       = ( FCKConfig.ScreenWidth - iWidth ) / 2 ; 
     536                 
     537                var sOpenUrl = '' ; 
     538                if ( FCK_IS_CUSTOM_DOMAIN && FCKBrowserInfo.IsIE)  
     539                { 
     540                        window._FCKHtmlToLoad = sHTML ; 
     541                        sOpenUrl = 'javascript:void( (function(){' + 
     542                                'document.open() ;' + 
     543                                'document.domain="' + document.domain + '" ;' + 
     544                                'document.write( window.opener._FCKHtmlToLoad );' + 
     545                                'document.close() ;' + 
     546                                'window.opener._FCKHtmlToLoad = null ;' + 
     547                                '})() )' ; 
     548                } 
     549                 
     550                var oWindow = window.open( sOpenUrl, null, 'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width=' + iWidth + ',height=' + iHeight + ',left=' + iLeft ) ; 
     551 
     552                if ( !FCK_IS_CUSTOM_DOMAIN || !FCKBrowserInfo.IsIE)  
     553                { 
     554                        oWindow.document.write( sHTML ); 
     555                        oWindow.document.close(); 
     556                } 
     557 
    540558        }, 
    541559 
    542560        SwitchEditMode : function( noUndo ) 
  • editor/_source/internals/fcktools_gecko.js

     
    111111        { 
    112112                case 'XmlHttp' : 
    113113                        return new XMLHttpRequest() ; 
     114 
    114115                case 'DOMDocument' : 
    115                         return document.implementation.createDocument( '', '', null ) ; 
     116                        // Originaly, we were had the following here: 
     117                        // return document.implementation.createDocument( '', '', null ) ; 
     118                        // 
     119                        // But, when manipulating document.domain (#123), we had 
     120                        // "Permission denied" errors when trying to call methods inside 
     121                        // the returned object. To avoid it, we have to change to the 
     122                        // following, by implementing a "custom" DOM document object, which 
     123                        // includes the methods that are useful for us. 
     124 
     125                        var domDoc = document.createDocumentFragment() ; 
     126 
     127                        domDoc.createElement = function( name ) 
     128                        { 
     129                                return document.createElement( name ) ; 
     130                        } 
     131 
     132                        domDoc.createTextNode = function( text ) 
     133                        { 
     134                                return document.createTextNode( text ) ; 
     135                        } 
     136 
     137                        domDoc.createAttribute = function( attName ) 
     138                        { 
     139                                return document.createAttribute( attName ) ; 
     140                        } 
     141 
     142                        domDoc.createComment = function( text ) 
     143                        { 
     144                                return document.createComment( text ) ; 
     145                        } 
     146 
     147                        return domDoc ; 
    116148        } 
    117149        return null ; 
    118150} 
     
    224256                        break ; 
    225257 
    226258                /* 
    227                 FCKDebug.Output( el.tagName + ":" + "offset=" + el.offsetLeft + "," + el.offsetTop + "  "  
     259                FCKDebug.Output( el.tagName + ":" + "offset=" + el.offsetLeft + "," + el.offsetTop + "  " 
    228260                                + "scroll=" + el.scrollLeft + "," + el.scrollTop ) ; 
    229261                */ 
    230262 
  • editor/_source/internals/fckxhtml.js

     
    4343 
    4444        // Create the XML DOMDocument object. 
    4545        this.XML = FCKTools.CreateXmlObject( 'DOMDocument' ) ; 
    46  
     46         
    4747        // Add a root element that holds all child nodes. 
    4848        this.MainNode = this.XML.appendChild( this.XML.createElement( 'xhtml' ) ) ; 
    4949 
  • editor/_source/internals/fckxhtml_gecko.js

     
    2424 
    2525FCKXHtml._GetMainXmlString = function() 
    2626{ 
    27         // Create the XMLSerializer. 
    28         var oSerializer = new XMLSerializer() ; 
    29  
    30         // Return the serialized XML as a string. 
    31         return oSerializer.serializeToString( this.MainNode ) ; 
     27        return '<xhtml>' + this.MainNode.innerHTML + '</xhtml>' ; 
    3228} 
    3329 
    3430FCKXHtml._AppendAttributes = function( xmlNode, htmlNode, node ) 
  • editor/dialog/common/fck_dialog_common.js

     
    1919 * == END LICENSE == 
    2020 * 
    2121 * Useful functions used by almost all dialog window pages. 
     22 * Dialogs should link to this file as the very first script on the page. 
    2223 */ 
    2324 
     25// Automatically detect the correct document.domain (#123). 
     26(function() 
     27{ 
     28        var d = document.domain ; 
     29 
     30        while ( true ) 
     31        { 
     32                // Test if we can access a parent property. 
     33                try 
     34                { 
     35                        var test = window.parent.document.domain ; 
     36                        break ; 
     37                } 
     38                catch( e ) {} 
     39                 
     40                // Remove a domain part: www.mytest.example.com => mytest.example.com => example.com ... 
     41                d = d.replace( /.*?(?:\.|$)/, '' ) ; 
     42 
     43                if ( d.length == 0 ) 
     44                        break ;         // It was not able to detect the domain. 
     45                 
     46                try 
     47                { 
     48                        document.domain = d ; 
     49                } 
     50                catch (e)  
     51                { 
     52                        break ; 
     53                } 
     54        } 
     55})() ;  
     56 
    2457// Gets a element by its Id. Used for shorter coding. 
    2558function GetE( elementId ) 
    2659{ 
  • editor/dialog/fck_colorselector.html

     
    3434                        #btnClear               { width: 75px ; height: 22px ; margin-bottom: 6px ; } 
    3535                        .ColorCell              { height: 15px ; width: 15px ; } 
    3636                </style> 
     37                <script src="common/fck_dialog_common.js" type="text/javascript"></script> 
    3738                <script type="text/javascript"> 
    3839 
    3940var oEditor = window.parent.InnerDialogLoaded() ; 
     
    135136 
    136137function Ok() 
    137138{ 
    138         if ( typeof(window.parent.dialogArguments.CustomValue) == 'function' ) 
    139                 window.parent.dialogArguments.CustomValue( document.getElementById('selcolor').value ) ; 
     139        if ( typeof(window.parent.args.CustomValue) == 'function' ) 
     140                window.parent.args.CustomValue( document.getElementById('selcolor').value ) ; 
    140141 
    141142        return true ; 
    142143} 
  • editor/dialog/fck_find.html

     
    1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
     1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
    22<!-- 
    33 * FCKeditor - The text editor for Internet - http://www.fckeditor.net 
    44 * Copyright (C) 2003-2007 Frederico Caldeira Knabben 
     
    2626        <title></title> 
    2727        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    2828        <meta content="noindex, nofollow" name="robots" /> 
     29        <script src="common/fck_dialog_common.js" type="text/javascript"></script> 
    2930        <script type="text/javascript"> 
    3031 
    3132var oEditor = window.parent.InnerDialogLoaded() ; 
  • editor/dialog/fck_flash/fck_flash_preview.html

     
    2727                <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
    2828                <meta name="robots" content="noindex, nofollow"> 
    2929                <link href="../common/fck_dialog_common.css" rel="stylesheet" type="text/css" /> 
     30                <script src="../common/fck_dialog_common.js" type="text/javascript"></script> 
    3031                <script language="javascript"> 
    3132 
    3233// Sets the Skin CSS 
  • editor/dialog/fck_image/fck_image_preview.html

     
    2929        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    3030        <meta name="robots" content="noindex, nofollow" /> 
    3131        <link href="../common/fck_dialog_common.css" rel="stylesheet" type="text/css" /> 
     32        <script src="../common/fck_dialog_common.js" type="text/javascript"></script> 
    3233        <script type="text/javascript"> 
    3334 
    3435// Sets the Skin CSS 
     
    4748        </script> 
    4849</head> 
    4950<body style="color: #000000; background-color: #ffffff"> 
    50         <a id="lnkPreview" onclick="return false;" style="cursor: default"> 
    51                 <img id="imgPreview" onload="window.parent.UpdateOriginal();" style="display: none" /></a>Lorem 
    52         ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas feugiat consequat diam. 
    53         Maecenas metus. Vivamus diam purus, cursus a, commodo non, facilisis vitae, nulla. 
    54         Aenean dictum lacinia tortor. Nunc iaculis, nibh non iaculis aliquam, orci felis 
    55         euismod neque, sed ornare massa mauris sed velit. Nulla pretium mi et risus. Fusce 
    56         mi pede, tempor id, cursus ac, ullamcorper nec, enim. Sed tortor. Curabitur molestie. 
    57         Duis velit augue, condimentum at, ultrices a, luctus ut, orci. Donec pellentesque 
    58         egestas eros. Integer cursus, augue in cursus faucibus, eros pede bibendum sem, 
    59         in tempus tellus justo quis ligula. Etiam eget tortor. Vestibulum rutrum, est ut 
    60         placerat elementum, lectus nisl aliquam velit, tempor aliquam eros nunc nonummy 
    61         metus. In eros metus, gravida a, gravida sed, lobortis id, turpis. Ut ultrices, 
    62         ipsum at venenatis fringilla, sem nulla lacinia tellus, eget aliquet turpis mauris 
    63         non enim. Nam turpis. Suspendisse lacinia. Curabitur ac tortor ut ipsum egestas 
    64         elementum. Nunc imperdiet gravida mauris. 
     51        <div> 
     52                <a id="lnkPreview" onclick="return false;" style="cursor: default"> 
     53                        <img id="imgPreview" src="javascript:void(0)" onload="window.parent.UpdateOriginal();" 
     54                                style="display: none" alt="" /></a>Lorem ipsum dolor sit amet, consectetuer adipiscing 
     55                elit. Maecenas feugiat consequat diam. Maecenas metus. Vivamus diam purus, cursus 
     56                a, commodo non, facilisis vitae, nulla. Aenean dictum lacinia tortor. Nunc iaculis, 
     57                nibh non iaculis aliquam, orci felis euismod neque, sed ornare massa mauris sed 
     58                velit. Nulla pretium mi et risus. Fusce mi pede, tempor id, cursus ac, ullamcorper 
     59                nec, enim. Sed tortor. Curabitur molestie. Duis velit augue, condimentum at, ultrices 
     60                a, luctus ut, orci. Donec pellentesque egestas eros. Integer cursus, augue in cursus 
     61                faucibus, eros pede bibendum sem, in tempus tellus justo quis ligula. Etiam eget 
     62                tortor. Vestibulum rutrum, est ut placerat elementum, lectus nisl aliquam velit, 
     63                tempor aliquam eros nunc nonummy metus. In eros metus, gravida a, gravida sed, lobortis 
     64                id, turpis. Ut ultrices, ipsum at venenatis fringilla, sem nulla lacinia tellus, 
     65                eget aliquet turpis mauris non enim. Nam turpis. Suspendisse lacinia. Curabitur 
     66                ac tortor ut ipsum egestas elementum. Nunc imperdiet gravida mauris. 
     67        </div> 
    6568</body> 
    6669</html> 
  • editor/dialog/fck_paste.html

     
    2828        <title></title> 
    2929        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
    3030        <meta name="robots" content="noindex, nofollow" /> 
    31  
     31        <script src="common/fck_dialog_common.js" type="text/javascript"></script> 
    3232        <script type="text/javascript"> 
    3333var oEditor = window.parent.InnerDialogLoaded() ; 
    3434var FCK = oEditor.FCK; 
    3535var FCKTools    = oEditor.FCKTools ; 
    3636var FCKConfig   = oEditor.FCKConfig ; 
     37var FCKBrowserInfo = oEditor.FCKBrowserInfo ; 
    3738 
    3839window.onload = function () 
    3940{ 
    4041        // First of all, translate the dialog box texts 
    4142        oEditor.FCKLanguageManager.TranslatePage(document) ; 
    4243 
    43         var sPastingType = window.parent.dialogArguments.CustomValue ; 
     44        var sPastingType = window.parent.args.CustomValue ; 
    4445 
    4546        if ( sPastingType == 'Word' || sPastingType == 'Security' ) 
    4647        { 
    4748                if ( sPastingType == 'Security' ) 
    4849                        document.getElementById( 'xSecurityMsg' ).style.display = '' ; 
    4950 
    50                 var oFrame = document.getElementById('frmData') ; 
    51                 oFrame.style.display = '' ; 
    52  
    53                 // Avoid errors if the pasted content has any script that fails: #389 
    54                 var oDoc = oFrame.contentWindow.document ; 
    55                 oDoc.open() ; 
    56                 oDoc.write('<html><head><script>window.onerror = function() { return true ; };<\/script><\/head><body><\/body><\/html>') ; 
    57                 oDoc.close() ; 
     51                // For document.domain compatibility (#123) we must do all the magic in 
     52                // the URL for IE. 
     53                var sFrameUrl = !oEditor.FCK_IS_CUSTOM_DOMAIN || !FCKBrowserInfo.IsIE ?  
     54                        'javascript:void(0)' : 
     55                        'javascript:void( (function(){' + 
     56                                'document.open() ;' + 
     57                                'document.domain=\'' + document.domain + '\' ;' + 
     58                                'document.write(\'<html><head><script>window.onerror = function() { return true ; };<\/script><\/head><body><\/body><\/html>\') ;' + 
     59                                'document.close() ;' + 
     60                                'document.body.contentEditable = true ;' + 
     61                                'window.focus() ;' + 
     62                                '})() )' ; 
     63                         
     64                var eFrameSpace = document.getElementById( 'xFrameSpace' ) ; 
     65                eFrameSpace.innerHTML = '<iframe id="frmData" src="' + sFrameUrl + '" ' + 
     66                                        'height="98%" width="99%" frameborder="0" style="border: #000000 1px; background-color: #ffffff"></iframe>' ;