Ticket #8226: 8226_4.patch
File 8226_4.patch, 3.4 KB (added by , 12 years ago) |
---|
-
_source/core/dom/element.js
1479 1479 } 1480 1480 } 1481 1481 1482 return $ && new CKEDITOR.dom.document( $.contentWindow.document );1482 return $ && $.contentWindow && new CKEDITOR.dom.document( $.contentWindow.document ); 1483 1483 }, 1484 1484 1485 1485 /** … … 1580 1580 return this.$.childNodes.length; 1581 1581 }, 1582 1582 1583 /** 1584 * Whether this element is not yet presented in the DOM tree. 1585 */ 1586 isOffline : function() 1587 { 1588 var root = this.getDocument().getDocumentElement(); 1589 return !root.contains( this ); 1590 }, 1591 1583 1592 disableContextMenu : function() 1584 1593 { 1585 1594 this.on( 'contextmenu', function( event ) -
_source/themes/default/theme.js
188 188 toolbarSpace && toolbarSpace.getParent().getParent()[ func ]( 'cke_mixed_dir_content' ); 189 189 }); 190 190 191 editor.on( 'destroy', function() 192 { 193 var container = editor.container, 194 element = editor.element; 195 container && container.clearCustomData(); 196 element.clearCustomData(); 197 }); 198 191 199 editor.fireOnce( 'themeLoaded' ); 192 200 editor.fireOnce( 'uiReady' ); 193 201 }, … … 267 275 element = editor.element; 268 276 269 277 if ( container ) 270 {271 container.clearCustomData();272 278 container.remove(); 273 }274 279 275 280 if ( element ) 276 281 { 277 element.clearCustomData();278 282 editor.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE && element.show(); 279 283 delete editor.element; 280 284 } -
_source/core/editor.js
465 465 || getNewName(); 466 466 467 467 if ( this.name in CKEDITOR.instances ) 468 throw '[CKEDITOR.editor] The instance "' + this.name + '" already exists.'; 468 { 469 var previous = CKEDITOR.instances[ this.name ]; 469 470 471 // Destroy detached editor silently. 472 if ( previous.checkDetached() ) 473 previous.destroy( false ); 474 else 475 throw '[CKEDITOR.editor] The instance "' + previous.name + '" already exists.'; 476 } 477 470 478 /** 471 479 * A unique random string assigned to each editor instance on the page. 472 480 * @name CKEDITOR.editor.prototype.id … … 562 570 */ 563 571 destroy : function( noUpdate ) 564 572 { 565 if ( !noUpdate )566 this.updateElement();567 573 574 var notDetached = !this.checkDetached(); 575 notDetached && this.updateElement(); 568 576 this.fire( 'destroy' ); 569 this.theme && this.theme.destroy( this );577 notDetached && this.theme && this.theme.destroy( this ); 570 578 571 579 CKEDITOR.remove( this ); 572 580 CKEDITOR.fire( 'instanceDestroyed', null, this ); … … 865 873 else 866 874 element.setHtml( data ); 867 875 } 876 }, 877 878 /** 879 * Check whether the editor UI has been removed from DOM thus 880 * the editor instance is considered to be obsoleted. 881 * @since 3.6.2 882 * @example 883 * editor.container.remove(); 884 * alert( editor.checkDetached() ); 885 */ 886 checkDetached : function() 887 { 888 this.element.isOffline() || this.container && this.container.isOffline(); 868 889 } 869 890 }); 870 891