behaviour.js とか
分離の問題って、単純に Event.observe("load", window, func) とかやるとページが完全にロードされるまで JS が一切実行されないことにあるよねぇ。画像を多く含むページとかは特に最悪。前に作った now playing のページ (バグって動いてないかも) なんてもうそれに当てはまってて結構アレだった。
で、このライブラリはどう解決してくれるんだうへへへとか期待して覗いてみたけど現バージョンでは特に対応されていない。すなわち上で書いたようにページが完全にロードされるまで、一切のイベントをキャッチできない。
と、いったところで、Google Group をほげーっと眺めてみると Google Groups: Behaviour Javascript Library というまさにソレなトピックがあって、コードが示されている。結局めんどくさいブラウザの独自拡張に手を出さないといけないみたいだ。
Gecko は DOMContentLoaded イベント (GreaseMonkey の実行タイミングと一緒かな?) を登録する。IE は script 要素の defer という属性を書いてあげればいいらしい。けど、実際試してみると IE でうまくいってないように見える。
どっちにしても Opera でうまくいかない以上、最速にしてストレスを減らすなら HTML 直書きになってしまうような。個人的には直書きが好きじゃないから分離してるけど、分離するだけなら別に behaviour.js はいらないかな (ちゃんとクラスとか id ふっておけばあんまり困らない)。
場合によっては、ポリシーを現実的なほうにズラして直で書く、と思う。諦めが肝心
関連エントリー
- scroll イベントが起きたり起きなかったり GM で window.addEventListener("scroll", fuction (e) {}, false); とかやってみた...
- HTTPS にしてからはてなスターの通知がこない あんまりスター付かないので気付いてなかったのですが、Chrome 拡張の「はてなのお知らせ」とかに通知がこなくなっていることに気付きました。...
- video/audio 要素の timeupdate イベントを高頻度にする video/audio 要素には再生時間が変わったときに timeupdate イベントが発生します。これは Chrome においては最頻で...
- AngularJS の ngResource を既存APIの仕様にあわせる AngularJS には ngResource という拡張があって、サーバに対する API 経由の CRUD 的操作を JavaScript...
- GreaseMonkey で MochiKit 使ってみる。すなわち外部ライブラリの読み込み。あるいははてなのグラフが綺麗じゃない GreaseMonkey で外部ライブラリが使いたいな。みたいな。似たようなのでは CMS researcher - Greasemonke...