X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=_source%2Fcore%2Fdom%2Fdomobject.js;h=d37790fac1784e10ab284055525af2a2d020b118;hb=48b1db88210b4160dce439c6e3e32e14af8c106b;hp=f10db99bb1adfffbf6a0b5da0d04ee4f5807a288;hpb=8665a7c6c60586526e32e8941fe2896739b6ebfb;p=ckeditor.git diff --git a/_source/core/dom/domobject.js b/_source/core/dom/domobject.js index f10db99..d37790f 100644 --- a/_source/core/dom/domobject.js +++ b/_source/core/dom/domobject.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved. +Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved. For licensing, see LICENSE.html or http://ckeditor.com/license */ @@ -84,10 +84,10 @@ CKEDITOR.dom.domObject.prototype = (function() { var listener = nativeListeners[ eventName ] = getNativeListener( this, eventName ); - if ( this.$.addEventListener ) - this.$.addEventListener( eventName, listener, !!CKEDITOR.event.useCapture ); - else if ( this.$.attachEvent ) + if ( this.$.attachEvent ) this.$.attachEvent( 'on' + eventName, listener ); + else if ( this.$.addEventListener ) + this.$.addEventListener( eventName, listener, !!CKEDITOR.event.useCapture ); } // Call the original implementation. @@ -107,10 +107,10 @@ CKEDITOR.dom.domObject.prototype = (function() var listener = nativeListeners && nativeListeners[ eventName ]; if ( listener ) { - if ( this.$.removeEventListener ) - this.$.removeEventListener( eventName, listener, false ); - else if ( this.$.detachEvent ) + if ( this.$.detachEvent ) this.$.detachEvent( 'on' + eventName, listener ); + else if ( this.$.removeEventListener ) + this.$.removeEventListener( eventName, listener, false ); delete nativeListeners[ eventName ]; } @@ -128,10 +128,10 @@ CKEDITOR.dom.domObject.prototype = (function() for ( var eventName in nativeListeners ) { var listener = nativeListeners[ eventName ]; - if ( this.$.removeEventListener ) - this.$.removeEventListener( eventName, listener, false ); - else if ( this.$.detachEvent ) + if ( this.$.detachEvent ) this.$.detachEvent( 'on' + eventName, listener ); + else if ( this.$.removeEventListener ) + this.$.removeEventListener( eventName, listener, false ); delete nativeListeners[ eventName ]; } @@ -167,6 +167,9 @@ CKEDITOR.dom.domObject.prototype = (function() /** * Sets a data slot value for this object. These values are shared by all * instances pointing to that same DOM object. + * Note: The created data slot is only guarantied to be available on this unique dom node, + * thus any wish to continue access it from other element clones (either created by clone node or from innerHtml) + * will fail, for such usage, please use {@link CKEDITOR.dom.element::setAttribute} instead. * @name CKEDITOR.dom.domObject.prototype.setCustomData * @function * @param {String} key A key used to identify the data slot. @@ -200,7 +203,7 @@ CKEDITOR.dom.domObject.prototype = (function() */ domObjectProto.getCustomData = function( key ) { - var expandoNumber = this.$._cke_expando, + var expandoNumber = this.$[ 'data-cke-expando' ], dataSlot = expandoNumber && customData[ expandoNumber ]; return dataSlot && dataSlot[ key ]; @@ -211,7 +214,7 @@ CKEDITOR.dom.domObject.prototype = (function() */ domObjectProto.removeCustomData = function( key ) { - var expandoNumber = this.$._cke_expando, + var expandoNumber = this.$[ 'data-cke-expando' ], dataSlot = expandoNumber && customData[ expandoNumber ], retval = dataSlot && dataSlot[ key ]; @@ -233,16 +236,20 @@ CKEDITOR.dom.domObject.prototype = (function() // Clear all event listeners this.removeAllListeners(); - var expandoNumber = this.$._cke_expando; + var expandoNumber = this.$[ 'data-cke-expando' ]; expandoNumber && delete customData[ expandoNumber ]; }; /** - * @name CKEDITOR.dom.domObject.prototype.getCustomData + * Gets an ID that can be used to identiquely identify this DOM object in + * the running session. + * @name CKEDITOR.dom.domObject.prototype.getUniqueId + * @function + * @returns {Number} A unique ID. */ domObjectProto.getUniqueId = function() { - return this.$._cke_expando || ( this.$._cke_expando = CKEDITOR.tools.getNextNumber() ); + return this.$[ 'data-cke-expando' ] || ( this.$[ 'data-cke-expando' ] = CKEDITOR.tools.getNextNumber() ); }; // Implement CKEDITOR.event.