safari.application.addEventListener("command", performCommand, false); safari.application.addEventListener("validate", validateCommand, false);
sampleコードやマニュアルに上記のよう書いてあるので当初真似して作ったんだけど
ウィンドウをアクティブにしたとたんvalidateイベント通知しまくりで
無限ループ状態となった。なので、validateイベントは無しで実装しました。
safari extensionを作ってみた - うんたらかんたら日記
私の使い方がおかしいのかと思い、
hatena-bookmark-safari-ext、Gmail Checker Safari Extensionにデバッグコード仕込んで動かしてみたら
同じように無限ループ。
これって私だけ?
じゃなけりゃ、validateイベント使いもんにならないと思うんだけど。。。
どなたかアドバイスを。。。
そもそも
eventに何が用意されてるのか、サポートページ見てもすぐわかんない。
command, validate, message, change, beforeload があるらしいというのが調べていくうちに分かった。
新規ウィンドウopenしたときに、validateイベントを追加しておくと、通知してくれるので
そのタイミングでcheckさせるようにしようと思ったんだが、この有様。。。
SafariExtensionToolbarItem Class Reference
Safari Extensions Reference