今日は本の虫: 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:
Post a Comment