0
-/* Prototype JavaScript framework, version 1.3.
00
+/* Prototype JavaScript framework, version 1.3.
10
* (c) 2005 Sam Stephenson <sam@conio.net>
0
* THIS FILE IS AUTOMATICALLY GENERATED. When sending patches, please diff
0
/*--------------------------------------------------------------------------*/
0
emptyFunction: function() {}
0
respondToReadyState: function(readyState) {
0
var event = Ajax.Request.Events[readyState];
0
- if (event == 'Complete'
&& this.responseIsFailure())
0
+ if (event == 'Complete'
)
0
(this.options['on' + this.transport.status]
0
- || this.options
.onFailure0
+ || this.options
['on' + this.responseIsSuccess() ? 'Success' : 'Failure']0
|| Prototype.emptyFunction)(this.transport);
0
- (this.options['on' + event] || Prototype.emptyFunction)(this.transport);
0
+ (this.options['on' + event] || Prototype.emptyFunction)(this.transport);
0
+ /* Avoid memory leak in MSIE: clean up the oncomplete event handler */
0
+ if (event == 'Complete')
0
+ this.transport.onreadystatechange = Prototype.emptyFunction;
0
var onComplete = this.options.onComplete || Prototype.emptyFunction;
0
this.options.onComplete = (function() {
0
- onComplete(this.transport);
0
+ onComplete(this.transport);
0
+ _observeAndCache: function(element, name, observer, useCapture) {
0
+ if (!this.observers) this.observers = [];
0
+ if (element.addEventListener) {
0
+ this.observers.push([element, name, observer, useCapture]);
0
+ element.addEventListener(name, observer, useCapture);
0
+ } else if (element.attachEvent) {
0
+ this.observers.push([element, name, observer, useCapture]);
0
+ element.attachEvent('on' + name, observer);
0
+ unloadCache: function() {
0
+ if (!Event.observers) return;
0
+ for (var i = 0; i < Event.observers.length; i++) {
0
+ Event.stopObserving.apply(this, Event.observers[i]);
0
+ Event.observers[i][0] = null;
0
+ Event.observers = false;
0
observe: function(element, name, observer, useCapture) {
0
var element = $(element);
0
useCapture = useCapture || false;
0
- if (name == 'keypress') {
0
- if (navigator.appVersion.indexOf('AppleWebKit') > 0) {
0
- element.addEventListener('keydown', observer, useCapture);
0
- if (element.addEventListener) {
0
- element.addEventListener('keypress', observer, useCapture);
0
- } else if (element.attachEvent) {
0
- element.attachEvent('onkeydown', observer);
0
- if (element.addEventListener) {
0
- element.addEventListener(name, observer, useCapture);
0
- } else if (element.attachEvent) {
0
- element.attachEvent('on' + name, observer);
0
+ if (name == 'keypress' &&
0
+ ((navigator.appVersion.indexOf('AppleWebKit') > 0)
0
+ || element.attachEvent))
0
+ this._observeAndCache(element, name, observer, useCapture);
0
stopObserving: function(element, name, observer, useCapture) {
0
var element = $(element);
0
useCapture = useCapture || false;
0
- if (name == 'keypress') {
0
- if (navigator.appVersion.indexOf('AppleWebKit') > 0) {
0
- element.removeEventListener('keydown', observer, useCapture);
0
- if (element.removeEventListener) {
0
- element.removeEventListener('keypress', observer, useCapture);
0
- } else if (element.detachEvent) {
0
- element.detachEvent('onkeydown', observer);
0
- if (element.removeEventListener) {
0
- element.removeEventListener(name, observer, useCapture);
0
- } else if (element.detachEvent) {
0
- element.detachEvent('on' + name, observer);
0
+ if (name == 'keypress' &&
0
+ ((navigator.appVersion.indexOf('AppleWebKit') > 0)
0
+ || element.detachEvent))
0
+ if (element.removeEventListener) {
0
+ element.removeEventListener(name, observer, useCapture);
0
+ } else if (element.detachEvent) {
0
+ element.detachEvent('on' + name, observer);
0
+/* prevent memory leaks in IE */
0
+Event.observe(window, 'unload', Event.unloadCache, false);
Comments
No one has commented yet.