8
0
فهرست منبع

Handle the selectionchange event.

Piotrek Koszuliński 5 سال پیش
والد
کامیت
f52c32488e

+ 6 - 0
packages/ckeditor5-engine/src/view/observer/observer.js

@@ -94,6 +94,12 @@ export default class Observer {
 	 * @returns {Boolean} Whether this event should be ignored by the observer.
 	 * @returns {Boolean} Whether this event should be ignored by the observer.
 	 */
 	 */
 	checkShouldIgnoreEvent( domEvt ) {
 	checkShouldIgnoreEvent( domEvt ) {
+		// The event's target could be the document itself and possibly other objects (that implement the native EventTarget interface).
+		// The data-cke-ignore-events attribute can only be used on elements, so skip other objects.
+		if ( domEvt.target.nodeType !== 1 ) {
+			return false;
+		}
+
 		return domEvt.target.matches( '[data-cke-ignore-events], [data-cke-ignore-events] *' );
 		return domEvt.target.matches( '[data-cke-ignore-events], [data-cke-ignore-events] *' );
 	}
 	}
 
 

+ 2 - 2
packages/ckeditor5-engine/src/view/observer/selectionobserver.js

@@ -100,8 +100,8 @@ export default class SelectionObserver extends Observer {
 			return;
 			return;
 		}
 		}
 
 
-		this.listenTo( domDocument, 'selectionchange', evt => {
-			this._handleSelectionChange( evt, domDocument );
+		this.listenTo( domDocument, 'selectionchange', ( evt, domEvent ) => {
+			this._handleSelectionChange( domEvent, domDocument );
 		} );
 		} );
 
 
 		this._documents.add( domDocument );
 		this._documents.add( domDocument );