2011-03-20

青空縦書きリーダーを実装しての雑感

今日は本の虫: Chrome extension: 青空縦書きリーダーを作った。

たった数時間程度の作業だったが、実に多くの新しいAPIを学んだ。

Chrome extensionのAPIに限って言えば、エクステンションの設定画面を提供するためのOptions Pageや、localStorageとContent scriptsをつなぐための、Background Pagesなどだ。幸い、ドキュメントがそれなりに用意されているので、簡単だった。

設定を保存するため、Web Storageも使った。これは、簡単だった。

また、mousewheelやkeydownイベントをまともに扱ったのも、初めてだ。しかし、ChromeはDocument Object Model (DOM) Level 3 Events Specificationを実装していないのか、一部のプロパティが使えなかった。その代わりに、規格にはないプロパティがたくさんあった。

scrollToやScrollByによるスクロールも、初めて扱った。これはおそらくChromeのバグなのかもしれないが、writing-mode : vertical-rlを使ったときに興味深い挙動を示した。というのも、(0,0)は右上である。これは、別におかしくはない。おかしいのは、横軸が負数だということだ。左端に動かすには、window.scrollTo( -document.body.scrollWidth, 0 )などというようにしなければならない。なぜか負数でなければならないのだ。この挙動はどうなのだろう。なにかおかしいような気がする。そもそも、scrollTo/scrollBy自体が規格で定義されていないのだが。

とりあえず、座標系が負数になる件は、issueとして投げておいた。仕様だとは思いにくい。

その他、getComputedStyleも使った。Document Object Model CSSで規定されている。

No comments: