2007年 11月 24日

シンクロニシティ

捨てネコらしきネコが家の庭にきていすわって対処に困っているのだけれど、いろいろありつつ飼うことになりそうな流れになっている。とかいう感じで名前つけるならなんだろうなぁ、とか考えてマリーとかどうよとか思ってたんだけど、なぜか名前の話なんて全くしていないのに母親と案がまるかぶりした。

余談ですが、今メインでつかっている MacBook のマシン名が Mary です。母親はマリーゴールドからとったようです。

jautopagerize Safari (GreaseKit) 対応

かなり初期のころの挙動にもどした。innerHTML つかうのと変わらないなぁけっきょく。はてダみたいに head/link@href を見てるやつだと2ページ目以降とれない。ふつうのサイトは body 以下にも同じリンクがあるから、siteinfo のほうを変更することで対処できるけど……

あーなんかほとんどうごいてないなぁ。もういいや……Safari とか使わないし

Safari とは関係ないけどごちゃごちゃやってるうちに Fx + Google でちゃんと動くようになった……

XSLTProcessor

Fx で HTMLDocument つくるのに XSLTProcessor つかうようにしたんだけど、よくわからない条件でエラーがでる。

[Exception... "Component returned failure code: 0x80600001 [nsIXSLTProcessor.importStylesheet]" nsresult: "0x80600001 ()"

div + innerHTML + XPath 改変のほうが安定しそうだなぁ……なんでこのへんマトモな実装してないんだろ。意味不明すぎ (Safari3 と Opera には createHTMLDocument がある)

XSLTProcessor つかうのやめた。はてダででるんだよなぁ (はてグなら大丈夫)
id() についてはもともと Safari 向けのコードで //*[@id=''] に文字列置換するのを書いてる。二個以上 id 指定があるとだめだけどそんな使いかた普通しないから無視

Fx に createHTMLDocument がないのは createDocument に doctype わたせばいいってことらしいけど (というか DOM の仕様にないのはそういうことなんだろうけど)、

var html4dt = document.implementation.createDocumentType("html", "-//W3C//DTD HTML 4.01//EN", "http://www.w3.org/TR/html4/strict.dtd");
alert(document.implementation.createDocument("", "html", html4dt));

とかやっても普通に XMLDocument になるよ。イミフ。これってバグじゃないのかなぁ。でも Bugzilla には関わりたくない。

memo

  1. http://mxr.mozilla.org/firefox/source/content/base/src/nsDocument.cpp#706
  2. http://mxr.mozilla.org/firefox/source/content/base/src/nsContentUtils.cpp#3319
  3. http://mxr.mozilla.org/firefox/source/content/xml/document/src/nsXMLDocument.cpp#102

普通に XML の処理しか書いてない。

2004 年報告のやつだけどまだ NEW だ。NEW の意味わすれたけど