今日は本の虫: 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
You can use some HTML elements, such as <b>, <i>, <a>, also, some characters need to be entity referenced such as <, > and & Your comment may need to be confirmed by blog author. Your comment will be published under GFDL 1.3 or later license with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.