mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Sync Prototype; closes #1539
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@1558 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
parent
31e48939b1
commit
a551ba2c01
1 changed files with 59 additions and 30 deletions
|
@ -1,4 +1,4 @@
|
||||||
/* Prototype: an object-oriented Javascript library, version 1.3.0
|
/* Prototype JavaScript framework, version 1.3.0
|
||||||
* (c) 2005 Sam Stephenson <sam@conio.net>
|
* (c) 2005 Sam Stephenson <sam@conio.net>
|
||||||
*
|
*
|
||||||
* THIS FILE IS AUTOMATICALLY GENERATED. When sending patches, please diff
|
* THIS FILE IS AUTOMATICALLY GENERATED. When sending patches, please diff
|
||||||
|
@ -152,10 +152,17 @@ String.prototype.extend({
|
||||||
return this.replace(/<\/?[^>]+>/gi, '');
|
return this.replace(/<\/?[^>]+>/gi, '');
|
||||||
},
|
},
|
||||||
|
|
||||||
|
escapeHTML: function() {
|
||||||
|
var div = document.createElement('div');
|
||||||
|
var text = document.createTextNode(this);
|
||||||
|
div.appendChild(text);
|
||||||
|
return div.innerHTML;
|
||||||
|
},
|
||||||
|
|
||||||
unescapeHTML: function() {
|
unescapeHTML: function() {
|
||||||
return this.replace(/</gi,"<").replace(/>/gi,">").
|
var div = document.createElement('div');
|
||||||
replace(/"/gi,'"').replace(/'/gi,"'").
|
div.innerHTML = this.stripTags();
|
||||||
replace(/&/gi,"&").replace(/[\n\r]/gi,"");
|
return div.childNodes[0].nodeValue;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -238,15 +245,17 @@ Ajax.Request.prototype = (new Ajax.Base()).extend({
|
||||||
var event = Ajax.Request.Events[readyState];
|
var event = Ajax.Request.Events[readyState];
|
||||||
|
|
||||||
if (event == 'Complete' && this.transport.status != 200)
|
if (event == 'Complete' && this.transport.status != 200)
|
||||||
(this.options['on' + this.transport.status] ||
|
(this.options['on' + this.transport.status]
|
||||||
this.options.onFailure ||
|
|| this.options.onFailure
|
||||||
Prototype.emptyFunction)(this.transport);
|
|| Prototype.emptyFunction)(this.transport);
|
||||||
|
|
||||||
(this.options['on' + event] || Prototype.emptyFunction)(this.transport);
|
(this.options['on' + event] || Prototype.emptyFunction)(this.transport);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Ajax.Updater = Class.create();
|
Ajax.Updater = Class.create();
|
||||||
|
Ajax.Updater.ScriptFragmentMatch = /<script.*?>((?:\n|.)*?)<\/script>/im;
|
||||||
|
|
||||||
Ajax.Updater.prototype = (new Ajax.Base()).extend({
|
Ajax.Updater.prototype = (new Ajax.Base()).extend({
|
||||||
initialize: function(container, url, options) {
|
initialize: function(container, url, options) {
|
||||||
this.containers = {
|
this.containers = {
|
||||||
|
@ -254,7 +263,6 @@ Ajax.Updater.prototype = (new Ajax.Base()).extend({
|
||||||
failure: container.failure ? $(container.failure) : null
|
failure: container.failure ? $(container.failure) : null
|
||||||
}
|
}
|
||||||
|
|
||||||
this.script_re = /<script.*?>((?:\n|.)*?)<\/script>/im;
|
|
||||||
this.setOptions(options);
|
this.setOptions(options);
|
||||||
|
|
||||||
if (this.options.asynchronous) {
|
if (this.options.asynchronous) {
|
||||||
|
@ -273,11 +281,11 @@ Ajax.Updater.prototype = (new Ajax.Base()).extend({
|
||||||
(this.request.transport.status == 200) ?
|
(this.request.transport.status == 200) ?
|
||||||
this.containers.success : this.containers.failure;
|
this.containers.success : this.containers.failure;
|
||||||
|
|
||||||
var response = this.request.transport.responseText.replace(
|
var response = this.request.transport.responseText.
|
||||||
this.script_re, '');
|
replace(Ajax.Updater.ScriptFragmentMatch, '');
|
||||||
|
|
||||||
var scripts = this.request.transport.responseText.match(
|
var scripts = this.request.transport.responseText.
|
||||||
this.script_re);
|
match(Ajax.Updater.ScriptFragmentMatch);
|
||||||
|
|
||||||
if (receiver) {
|
if (receiver) {
|
||||||
if (this.options.insertion) {
|
if (this.options.insertion) {
|
||||||
|
@ -288,15 +296,14 @@ Ajax.Updater.prototype = (new Ajax.Base()).extend({
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.request.transport.status == 200) {
|
if (this.request.transport.status == 200) {
|
||||||
if (this.onComplete) {
|
if (this.onComplete)
|
||||||
setTimeout((function() {this.onComplete(
|
setTimeout((function() {this.onComplete(
|
||||||
this.request.transport)}).bind(this), 10);
|
this.request.transport)}).bind(this), 10);
|
||||||
}
|
|
||||||
if (this.options.script && scripts) {
|
if (this.options.evalScripts && scripts)
|
||||||
setTimeout((function() {eval(scripts[1])}).bind(this), 10);
|
setTimeout((function() {eval(scripts[1])}).bind(this), 10);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
});
|
});
|
||||||
|
|
||||||
Ajax.PeriodicalUpdater = Class.create();
|
Ajax.PeriodicalUpdater = Class.create();
|
||||||
|
@ -340,11 +347,8 @@ Ajax.PeriodicalUpdater.prototype = (new Ajax.Base()).extend({
|
||||||
onTimerEvent: function() {
|
onTimerEvent: function() {
|
||||||
this.updater = new Ajax.Updater(this.container, this.url, this.options);
|
this.updater = new Ajax.Updater(this.container, this.url, this.options);
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
/*--------------------------------------------------------------------------*/
|
|
||||||
|
|
||||||
document.getElementsByClassName = function(className) {
|
document.getElementsByClassName = function(className) {
|
||||||
var children = document.getElementsByTagName('*') || document.all;
|
var children = document.getElementsByTagName('*') || document.all;
|
||||||
var elements = new Array();
|
var elements = new Array();
|
||||||
|
@ -861,25 +865,50 @@ Object.extend(Event, {
|
||||||
return element;
|
return element;
|
||||||
},
|
},
|
||||||
|
|
||||||
observe: function(element, name, observer) {
|
observe: function(element, name, observer, useCapture) {
|
||||||
var element = $(element);
|
var element = $(element);
|
||||||
|
useCapture = useCapture || false;
|
||||||
|
|
||||||
if (name == 'keypress') {
|
if (name == 'keypress') {
|
||||||
if (navigator.appVersion.indexOf('AppleWebKit') > 0) {
|
if (navigator.appVersion.indexOf('AppleWebKit') > 0) {
|
||||||
element.addEventListener('keydown', observer, false);
|
element.addEventListener('keydown', observer, useCapture);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (element.addEventListener) {
|
if (element.addEventListener) {
|
||||||
element.addEventListener('keypress', observer, false);
|
element.addEventListener('keypress', observer, useCapture);
|
||||||
} else if (element.attachEvent) {
|
} else if (element.attachEvent) {
|
||||||
element.attachEvent('onkeydown', observer);
|
element.attachEvent('onkeydown', observer);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (element.addEventListener) {
|
if (element.addEventListener) {
|
||||||
element.addEventListener(name, observer, false);
|
element.addEventListener(name, observer, useCapture);
|
||||||
} else if (element.attachEvent) {
|
} else if (element.attachEvent) {
|
||||||
element.attachEvent('on' + name, observer);
|
element.attachEvent('on' + name, observer);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
|
||||||
|
stopObserving: function(element, name, observer, useCapture) {
|
||||||
|
var element = $(element);
|
||||||
|
useCapture = useCapture || false;
|
||||||
|
|
||||||
|
if (name == 'keypress') {
|
||||||
|
if (navigator.appVersion.indexOf('AppleWebKit') > 0) {
|
||||||
|
element.removeEventListener('keydown', observer, useCapture);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (element.removeEventListener) {
|
||||||
|
element.removeEventListener('keypress', observer, useCapture);
|
||||||
|
} else if (element.detachEvent) {
|
||||||
|
element.detachEvent('onkeydown', observer);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (element.removeEventListener) {
|
||||||
|
element.removeEventListener(name, observer, useCapture);
|
||||||
|
} else if (element.detachEvent) {
|
||||||
|
element.detachEvent('on' + name, observer);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue