Procházet zdrojové kódy

Do not override element#ckeditorInstance in EditorUI (just to stay on the safe side).

Aleksander Nowodzinski před 6 roky
rodič
revize
3b0be79442

+ 3 - 1
packages/ckeditor5-core/src/editor/editorui.js

@@ -124,7 +124,9 @@ export default class EditorUI {
 		// It helps 3rd–party software (browser extensions, other libraries) access and recognize
 		// CKEditor 5 instances (editing roots) and use their API (there is no global editor
 		// instance registry).
-		domElement.ckeditorInstance = this.editor;
+		if ( !domElement.ckeditorInstance ) {
+			domElement.ckeditorInstance = this.editor;
+		}
 	}
 
 	/**

+ 11 - 0
packages/ckeditor5-core/tests/editor/editorui.js

@@ -130,6 +130,17 @@ describe( 'EditorUI', () => {
 
 			expect( element.ckeditorInstance ).to.equal( editor );
 		} );
+
+		it( 'does not override a reference to the editor instance in domElement#ckeditorInstance', () => {
+			const ui = new EditorUI( editor );
+			const element = document.createElement( 'div' );
+
+			element.ckeditorInstance = 'foo';
+
+			ui.setEditableElement( 'main', element );
+
+			expect( element.ckeditorInstance ).to.equal( 'foo' );
+		} );
 	} );
 
 	describe( 'getEditableElement()', () => {