Opera 9.21: TypeError

DataFox

Erfahrenes Mitglied
Hi

bei folgendem JavaScript Code meldet Opera einen Fehler:

Code:
		if(!(document.all && !window.opera)) {
			HTMLElement.prototype.__defineGetter__("outerHTML", function () {
				var attrs = this.attributes;
				var str = "<" + this.tagName;
				for (var i = 0; i < attrs.length; i++) {
					str += " " + attrs[i].name + "=\"" + attrs[i].value + "\"";
				}
				return str + ">" + this.innerHTML + "</" + this.tagName + ">";
			});
		}


Die Fehlermeldung:

Code:
Inline script thread
Error:
name: TypeError
message: Statement on line 11: Type mismatch (usually a non-object value used where an object is required)
Backtrace:
  Line 11 of linked script http://meinetestserverdomain.de/js/test.js 
    HTMLElement.prototype.__defineGetter__("outerHTML", (function ()
{
  var attrs = this.attributes;
  var str = "<" + this.tagName;
  for (var i = 0;i < attrs.length;i++)
    {
      str += " " + attrs[i].name + "=\"" + attrs[i].value + "\"";
    }
  return str + ">" + this.innerHTML + "</" + this.tagName + ">";
}
));

in Zeile 11 steht:

Code:
});

Ich habe schon vieles probiert. Kann Opera einfach gar kein Prototype? Oder was ist da los Hoffe hier kennt sich jemand damit aus...

Gruß
Laura
 
Moin,

Opera kennt die Methode __defineGetter__ nicht, ich glaube, dies ist ein Mozilla-eigenes Feature und kein Basis-JS-Bestandteil(auch wenn diese Methode bei mozilla.org als Bestandteil von JS 1.5 erwähnt wird).

Übrigens: Opera kennt dafür outerHTML ;)
 

Neue Beiträge

Zurück