Hatena::ブログ(Diary)

HM stream

 | 

2006-06-03

『Crossing Hatena Version 2006-05-26』をちょっぴり改良

Crossing Hatena (はてな横断 - 徒書)がメニュー部品にXULを使ふやうになってゐた。以前のだとメニューの非表示にタイマーを使ってゐた關係で文書側のスクリプトを禁止してゐると上手く動作しなかったやうな記憶があるのだけど、部品がXULならさういふ小細工は不要なので問題も起きないはず。といふことで再び導入してみた。

が、div要素がユーザスタイルシートの影響を受けて表示が崩れてしまふ。そこでスクリプト(Versionが2006-05-26の物)を次のやうに修正:

--- crossinghatena.user.js.orig	2006-05-26 13:03:50.000000000 +0900
+++ crossinghatena.user.js	2006-06-03 16:51:26.000000000 +0900
@@ -48,7 +48,7 @@
 	if (user == 'keyword') return;
 	if (user == 'idea') return;
-	var div = d.createElement('div');
+	var div = d.createElementNS(xulns, 'hbox');
 	var ds = div.style;
 	ds.position = 'fixed';
 	ds.top = '0';
@@ -96,7 +96,7 @@
 		}
 		mi.addEventListener('click', dispatchHandler(srv, user), false);
 	}
-	d.body.appendChild(div);
+	d.body.insertBefore(div, d.body.firstChild);

 	function dispatchHandler(domain, user) {
 		var url;

これで、HTML用のユーザスタイルシートや文書側のスタイルシートの影響を受けなくなった。(appendChild()をinsertBefore()にしたのはこれとは關係無く、CSSを切っても「上」に表示されるやうにする爲のもの)。

ところで。divといふ變數名はオブジェクトの内容(タグ名)に強く依存してゐるので、見てのとほりかういふ變更に弱い。まるで「<em class="green">」「em.green { color: red; }」云々。タグ名を變數の名前にするのは、出來れば避けたはうが良いと思ひます。

關聯記事:

 | 

MORIYAMA Hiroshi <hiroshi@kvd.biglobe.ne.jp>