2011-07-20
Greasemonkey 0.9.1 以降のバージョンで AutoPagerize Switcher が動かなくなっていたのを修正
Greasemonkey をアップデートしたら AutoPagerize Switcher が動かなくなってしまった!
と、いうわけで
修正しました。
インストールする
こちらからどうぞ。
http://userscripts.org/scripts/show/55178
何がいけなかったか
下のように window.AutoPagerize が存在するかどうかで処理を行うかの判定をしていたんだけど、どうやら Greasemonkey 0.9.1 以降ではそれぞれのスクリプト毎に window オブジェクトが別になったみたいで、AutoPagerize をインストールしているのにも関わらず window.AutoPagerize が取得できずに処理をスルーしていた。
// ==UserScript== // @name AutoPagerize Switcher // @namespace http://www.ohaco.jp/ // @description AutoPagerize をキーボードで on/off 切り替え可能にする Greasemonkey スクリプト。 // @include http://* // ==/UserScript== (function() { if(window.AutoPagerize) { // やりたい処理 } })();
どこを直したらいいか
どうしようかと思ってググっていたらこんなものを発見。
AutoPagerizeが実行されたときに
var ev = document.createEvent('Events') ev.initEvent('GM_AutoPagerizeLoaded', false, true) window.dispatchEvent(ev)というコードが実行されてGM_AutoPagerizeLoadedという名前のイベントが送られてくるようにしました。
AutoPagerizeのスクリプト実行順序制約をなくせるようになりました « ku
なるほどー。本来はスクリプトの実行順序を気にしなくても使えるように追加されたものらしいけど、これは使えるかもしれない。
そんなわけで
下のように修正してみたところ、無事に動くようになりましたとさ。
// ==UserScript== // @name AutoPagerize Switcher // @namespace http://www.ohaco.jp/ // @description AutoPagerize をキーボードで on/off 切り替え可能にする Greasemonkey スクリプト。 // @include http://* // @include https://* // @version 1.0.1 // ==/UserScript== (function() { function init() { // やりたい処理 } if(window.AutoPagerize) { init(); } else { document.addEventListener('GM_AutoPagerizeLoaded', init(), false); } })();
トラックバック - http://d.hatena.ne.jp/hotch_botch/20110720/AutoPagerizeSwitcher
リンク元
- 45 http://www.tuya28.com
- 31 http://d.hatena.ne.jp/
- 24 http://www.google.co.jp/url?sa=t&rct=j&q=javascript attachevent&source=web&cd=4&sqi=2&ved=0CDwQFjAD&url=http://d.hatena.ne.jp/hotch_botch/20080917/attachevent_this&ei=szSETtL7IIHGmAWavKgT&usg=AFQjCNEjJ1cby0qk2omhTVi_DfQuYyxRYg
- 21 http://www.google.co.jp/url?sa=t&rct=j&q=greasemonkey autopagerize 動かない&source=web&cd=1&ved=0CC4QFjAA&url=http://d.hatena.ne.jp/hotch_botch/20110720/AutoPagerizeSwitcher&tbs=qdr:m3&ei=3LpmTqz3HsPrmAWcmsGQC
- 14 http://reader.livedoor.com/reader/
- 13 http://www.google.co.jp/url?sa=t&rct=j&q=attachevent this&source=web&cd=1&ved=0CB0QFjAA&url=http://d.hatena.ne.jp/hotch_botch/20080917/attachevent_this&ei=nkWFTpbrFMrjmAXQusHwDw&usg=AFQjCNEjJ1cby0qk2omhTVi_DfQuYyxRYg&sig2=Ngirf2Svrs4fXMgjA3r
- 11 http://www.google.co.jp/
- 11 http://www.google.co.jp/url?sa=t&rct=j&q=javascript+attachevent&source=web&cd=3&ved=0CDkQFjAC&url=http://d.hatena.ne.jp/hotch_botch/20080917/attachevent_this&ei=Om7HTqhBz-iYBcKU0SY&usg=AFQjCNEjJ1cby0qk2omhTVi_DfQuYyxRYg&sig2=oq-yh3WorH_45nWiQD
- 8 http://b.hatena.ne.jp/
- 8 http://www.google.co.jp/url?sa=t&rct=j&q=greasemonkey+autopagerize+動かない&source=web&cd=8&ved=0CFUQFjAH&url=http://d.hatena.ne.jp/hotch_botch/20110720/AutoPagerizeSwitcher&ei=OQHmTq2kOJCZmQWN8dH4BA&usg=AFQjCNHpx5Z
