Matt...
Here's a "patch" of
sorts. A couple of notes.
1) This patch may
break some functionality in "prototype.js". My particular project only needed to
use it minimally, and the part I modified didn't affect what I was working on.
Since I needed html unit, I made the change to prototype.js without considering
any ramifications on other functionality.
2) Having little
experience with patches, I'm not sure if you'll need to change the repository
name (at the top of the patch file) to make it work with your set up. I hope you
don't have any problems with it however.
That said, hope it
helps.
Thanks,
Ben Kyrlach --
Operations Intern.
Ben
Kyrlach wrote:
I've
also experienced this problem before. Unfortunantly, I was unable to isolate
the problematic code from the application under test. If you're using
"prototype.js" (a standard javascript library it seems) I've found that a
simple modification to that JS file solved my problem.
Please provide the patch for prototype.js as I'm having the
same issue on my project.
Thanks,
Matt
View this message in context: RE:
Re: "Form" is not a constructor
Sent from the HtmlUnit -
General forum at Nabble.com.
Index: prototype.js
===================================================================
RCS file: /usr/local/cvsroot/hobsons2.0/tim/TIMConfig/prototype.js,v
retrieving revision 1.1
diff -u -r1.1 prototype.js
--- prototype.js 5 Jan 2006 19:19:30 -0000 1.1
+++ prototype.js 5 Jan 2006 19:22:12 -0000
@@ -581,13 +581,13 @@
/*--------------------------------------------------------------------------*/
-var Form = {
+var Form1 = {
serialize: function(form) {
- var elements = Form.getElements($(form));
+ var elements = Form1.getElements($(form));
var queryComponents = new Array();
for (var i = 0; i < elements.length; i++) {
- var queryComponent = Form.Element.serialize(elements[i]);
+ var queryComponent = Form1.Element.serialize(elements[i]);
if (queryComponent)
queryComponents.push(queryComponent);
}
@@ -599,7 +599,7 @@
var form = $(form);
var elements = new Array();
- for (tagName in Form.Element.Serializers) {
+ for (tagName in Form1.Element.Serializers) {
var tagElements = form.getElementsByTagName(tagName);
for (var j = 0; j < tagElements.length; j++)
elements.push(tagElements[j]);
@@ -627,7 +627,7 @@
},
disable: function(form) {
- var elements = Form.getElements(form);
+ var elements = Form1.getElements(form);
for (var i = 0; i < elements.length; i++) {
var element = elements[i];
element.blur();
@@ -636,7 +636,7 @@
},
enable: function(form) {
- var elements = Form.getElements(form);
+ var elements = Form1.getElements(form);
for (var i = 0; i < elements.length; i++) {
var element = elements[i];
element.disabled = '';
@@ -645,7 +645,7 @@
focusFirstElement: function(form) {
var form = $(form);
- var elements = Form.getElements(form);
+ var elements = Form1.getElements(form);
for (var i = 0; i < elements.length; i++) {
var element = elements[i];
if (element.type != 'hidden' && !element.disabled) {
@@ -660,11 +660,11 @@
}
}
-Form.Element = {
+Form1.Element = {
serialize: function(element) {
var element = $(element);
var method = element.tagName.toLowerCase();
- var parameter = Form.Element.Serializers[method](element);
+ var parameter = Form1.Element.Serializers[method](element);
if (parameter)
return encodeURIComponent(parameter[0]) + '=' +
@@ -674,24 +674,24 @@
getValue: function(element) {
var element = $(element);
var method = element.tagName.toLowerCase();
- var parameter = Form.Element.Serializers[method](element);
+ var parameter = Form1.Element.Serializers[method](element);
if (parameter)
return parameter[1];
}
}
-Form.Element.Serializers = {
+Form1.Element.Serializers = {
input: function(element) {
switch (element.type.toLowerCase()) {
case 'submit':
case 'hidden':
case 'password':
case 'text':
- return Form.Element.Serializers.textarea(element);
+ return Form1.Element.Serializers.textarea(element);
case 'checkbox':
case 'radio':
- return Form.Element.Serializers.inputSelector(element);
+ return Form1.Element.Serializers.inputSelector(element);
}
return false;
},
@@ -725,7 +725,7 @@
/*--------------------------------------------------------------------------*/
-var $F = Form.Element.getValue;
+var $F = Form1.Element.getValue;
/*--------------------------------------------------------------------------*/
@@ -753,17 +753,17 @@
}
}
-Form.Element.Observer = Class.create();
-Form.Element.Observer.prototype = (new Abstract.TimedObserver()).extend({
+Form1.Element.Observer = Class.create();
+Form1.Element.Observer.prototype = (new Abstract.TimedObserver()).extend({
getValue: function() {
- return Form.Element.getValue(this.element);
+ return Form1.Element.getValue(this.element);
}
});
-Form.Observer = Class.create();
-Form.Observer.prototype = (new Abstract.TimedObserver()).extend({
+Form1.Observer = Class.create();
+Form1.Observer.prototype = (new Abstract.TimedObserver()).extend({
getValue: function() {
- return Form.serialize(this.element);
+ return Form1.serialize(this.element);
}
});
@@ -791,7 +791,7 @@
},
registerFormCallbacks: function() {
- var elements = Form.getElements(this.element);
+ var elements = Form1.getElements(this.element);
for (var i = 0; i < elements.length; i++)
this.registerCallback(elements[i]);
},
@@ -825,17 +825,17 @@
}
}
-Form.Element.EventObserver = Class.create();
-Form.Element.EventObserver.prototype = (new Abstract.EventObserver()).extend({
+Form1.Element.EventObserver = Class.create();
+Form1.Element.EventObserver.prototype = (new Abstract.EventObserver()).extend({
getValue: function() {
- return Form.Element.getValue(this.element);
+ return Form1.Element.getValue(this.element);
}
});
-Form.EventObserver = Class.create();
-Form.EventObserver.prototype = (new Abstract.EventObserver()).extend({
+Form1.EventObserver = Class.create();
+Form1.EventObserver.prototype = (new Abstract.EventObserver()).extend({
getValue: function() {
- return Form.serialize(this.element);
+ return Form1.serialize(this.element);
}
});
@@ -1033,6 +1033,4 @@
target.style.top = offsets[1] + 'px';
target.style.left = offsets[0] + 'px';
target.style.width = source.offsetWidth + 'px';
- target.style.height = source.offsetHeight + 'px';
- }
-}
+ target.style.height = source.off
\ No newline at end of file