A Day in the Life

2009-03-02

vimperator で、標準の検索を XUL/Migemo 検索に置き換えるプラグイン作った

/ の検索も XUL/Migemo りたい!ということで作成。XUL/Migemo のソース読んでいたら pIXMigemoFind 利用すれば普通にできそうだったので実装してみたら超簡単にできた。piro++。

migemize_find.js というプラグインもあるんだけど、あちらは XUL/Migemo の正規表現のみを利用し、検索部は独自に実装している。migemize_find.js の方がハイライト機能や検索ワードの一文字目で検索パターンを指定できたりといろいろできる(migemo-find はあくまで標準の検索の置き換えという感じ)なので棲み分けできそう。

あとは検索にマッチでフォーカスあたってるところの親要素がリンクなら、リンク先に飛びたいんだけど標準検索に実装されてない・・・よね?

setTimeout の第三引数以降

を、MSIE以外なら使えるのかな。

setTimeout(function(self) {
    alert(self);
}, 10, this);

みたいに書ける。

Firefox で ThreadManager で JavaScript で wait る

はてなダイアリー

同じこと書いてたなー。結構やり方が載ってないんだよね。sleep という関数名にすると他のメインスレッドも止まっちゃう感じなので wait という名前にしていた。

const ThreadManager = Cc["@mozilla.org/thread-manager;1"].getService();

var wait = function(wait, flush) {
    if (typeof flush == 'undefined') flush = true;

    let endTime = Date.now() + wait;
    let mainThread = ThreadManager.mainThread;
    let c = 0;
    do {
        c++;
        mainThread.processNextEvent(flush);
    } while ( (flush && mainThread.hasPendingEvents()) || Date.now() < endTime );
    return c;
};
foo();
wait(1000);
bar();

しかし ThreadManager は、 DOM がスレッドセーフでないため、バックグラウンドスレッドから DOM 弄れない(クラッシュするかも)なため、ThreadManager の使い勝手がいまいち…。

記事の一覧 >