Jintrick.netagenda2001年08月アーカイブ → 2001年08月26日

見通し。

DOMで要素を消去したり置き換えたりする方法も見つかった。idか何かで参照して、直接消去するような方法は、確かに無い(見つからない)のだけど。ULの子要素(LI)の参照に関してIEとMozillaで判別せずに済む方法も分かった。childNodesではなく、getElementsByTagName('LI')でNodeListを参照。後者は、documentオブジェクトだけのメソッドだと勘違いしていた。これでやれそうなことの幅がかなり広がった気がする。

function replaceElement(text){
 var d = document;
 var parent = d.getElementById('testUL');
 var refchild = parent.getElementsByTagName('LI').item(0);
 var newchild = d.createElement('LI');
 parent.replaceChild(newchild, refchild);
 var nText = d.createTextNode(text);
 newchild.insertBefore(nText, null); //または appendChild(nText);
}replaceElement('c');

あとはイベント関係。例えばonclick属性を持たない要素に、DOMでonclick属性をつけてやってもIEでイベントが発生しないという件。要素ごと生成するなら、innerHTMLメソッドで何とかなるものの、既に存在する要素の場合面倒なことになるし、innerHTMLは独自拡張ということで早く忘れてしまいたいというのもある。

取り敢えずHTML EditorはMozilla専用にしてみる。(見通しが立ったので)セクションだけではなく、DOCTYPE宣言から何から、全部生成するHTML Editorを作ることにした。User-Javascriptを併用すれば、テキストエディタを起動せずにHTMLの編集ができそう。テキストエディタは保存する時だけ使用。DOM Level2をサポートしてるというのは、かなり強力(Mozilla)。 document.implementation.hasFeature('HTML','2.0')

なんというか、掲示板に投稿するような気軽な感覚でHTMLを書きたいというのがあって、そりゃあCGIでやった方が良いに決まっているのだけれど、そのためだけに勉強するというのは素人には無意味だから。リロードを必要としないというのもかなりの魅力だし。

CSS EditorもIE対策でソースが自分でも見たくなくなるくらい酷いものになってしまった。手を加える気にならない。こちらはN6専用に変更。そもそもIEで表示確認を取るCSSエディタなんて、害悪そのものだった。


webmaster@jintrick.net
公開: 2001年08月26日
カテゴリ: