2011-01-06 10 views
3

私はDOMを拡張しようとしています。私はdiv要素から「サブクラス」:appendChild()で追加できるJSオブジェクトは何ですか?

だから、
var Subclass = function() {} 
Subclass.prototype = document.createElement('div'); 
Subclass.constructor = Subclass; 

var obj = new Subclass(); 
var obj.innerHTML = 'test'; 
document.body.appendChild(obj); // Exception: Node cannot be inserted ... point in the hierarchy 

DOMオブジェクトされているオブジェクトのプロトタイプを行うことはありません場合は、DOMに挿入されるオブジェクトのための要件は何ですか?

+0

関連:http://stackoverflow.com/questions/779880/in-javascript-can-you-extend-the-dom – Hamish

答えて

0

これはFirefoxで実際に動作します。とにかく、並べ替え。新しいSubclassを実行するときに実際に新しい要素を作成することはありませんが、同じものを使用し続けます。

いずれにしても、DOMオブジェクト自体がappendChildされる方法で「特殊」であると言います。 W3C仕様appendChild()による

+0

Firefoxでは動作しません。 'var obj = new Subclass(); obj.innerHTML = "test"; document.body.appendChild(obj); 'エラーを返します。 –

+0

奇妙な、それは私のために働いた。実際にdivをドキュメントに追加しました。 –

0

  1. 返しNode
  2. スローDOMException
  3. Nodeの引数が1つ必要です。 specificationから

Node appendChild(in Node newChild) raises(DOMException); 
0

あなたはその後、

HTMLDivElement.prototype.newFunction = function() { //'this' will get that div dom } 

によってそれが唯一のdiv要素を拡張することを行うことができかもしれのみのdiv要素を拡張したい場合は...作品FFで、他のブラウザについて知りません。

これがあなたを助けてくれることを願っています。

関連する問題