Jintrick.netagenda2007年06月アーカイブ → 2007年06月23日

邦訳HTML文書支援#01 ノード間自動リンク用メソッド

最近自分用に色々な英文の邦訳をしていて、omitしまくりのフラットなHTML4.01 Transitionalで記述している。ページ内のアンカーとか、目次とか、できる限り計算機に任せて邦訳作業に専念したい。

Node.prototype.linkTo = function(node) {
	Node.ID = Node.ID || generateId();
	var  a = document.createElement("A");
	a.href = "#" + (node.id || (node.id = Node.ID.next()));
	this.parentNode && this.parentNode.insertBefore(a, this);
	a.appendChild(this);
	return a;
	function generateId(){
		var id = 0;
		while(true)
			yield "purl_org_jintrick" + id++;
	}
}

ツリーを辿って見出しに対してアンカーリストの目次を作成したり、全CITE要素に対して同一のtextContentを持った見出し等々にリンクしたりするのに使う。Block Level Element や A ElementでこのlinkToメソッドを使うとinvalidになるから、例えばHTMLAnchorElement.prototype.linkTo = function(){};のようにオーバーライドするか、メソッド内でthis instanceof HTMLAnchorElement && throw fooのようにしたほうがいい。面倒くさいからやらないけれども。


webmaster@jintrick.net
公開: 2007年06月23日
カテゴリ: Javascript