JavaScript

見た目を変え難い nsIAlertService の代用。xul ファイルいらず。

こんなんできました。 折り返しもしてる!! ソースコード twitter記法使いたい @teramako nsIAlertsService みたいに別ウィンドウとして出さないと駄目かもしれないですね。めんどくさそうですけどw2010-08-14 01:33:50 via Twittperator to @teramako @an…

Firefox のアドオンから、ChirpUserStream を読む方法

微妙に Vimperator 依存になってるかもだけど、おおむねそのまま使えるはず。 手抜き仕様です。 単純なので、nsISocketTransportService を使ってます。 もっと格好いい HTTP なやつもあるかもしれないですが、必要ないでしょう。

あなたのお目々もピッカピカ!目玉チェレンコフメイカー色々修正した。

Medama Cherenkov Maker - http://www.kurinton.net/~snca/medama-cherenkov-maker.htmlしょうもないバグしかなかった!

getComputedStyle が null を返す

表示されていない iframe 内の要素に対して、getComputedStyle すると null がかえってきちゃう。 JavaScript コード let d = content.frames[0].document; let e= d.querySelector('a'); d.defaultView.getComputedStyle(e, ''); // => null main.html <div style="display:none"> <iframe src="iframe.html" /> </</iframe></div>…

nsIWebBrowserPersist の saveURI で POST する方法

よくわからなくてちょっとはまったので、メモるよ。 let download = function (url, filepath, referer, postDataText) { let dm = Cc["@mozilla.org/download-manager;1"].getService(Ci.nsIDownloadManager); let wbp = Cc["@mozilla.org/embedding/browse…

マルチバイト文字列のエスケープ方法色々

色々教えて貰いました。 uneval @anekos uneval('猫') "\u732B"" 付きでお得(?) echo愛 @anekos :echo $("猫").utf16 i_love_echo.jsが入っていればできますよ これは Vimperator のプラグイン前提。 うちでは*1ちょっとおかしかったので、原因をあとで調べ…

変態記法 Sharp Variables

A sharp variable is a syntax in object initializers that allows serialization of objects that have cyclic references or multiple references to the same object. #数字に代入することで、他のプロパティをリテラル内で参照できるらすぃ。 let hoge …

配列(Array)の中身を入れ替える。

Ruby でいうところの Array#replace がやりたかったけれど、そのままなメソッドはないようなのででっち上げてみた。 function arrayReplace (ary, newItems) (ary.length = 0, ary.push.apply(ary, newItems)); let a = [1, 2, 3]; alert(a); // -> "1,2,3" …

二つのパスから相対パスを得る関数

id:teramako さんに教えて貰いました。 function fromUTF8Octets (s) { let conv = Components.classes['@mozilla.org/intl/scriptableunicodeconverter']. getService(Components.interfaces.nsIScriptableUnicodeConverter); conv.charset = 'UTF-8'; retu…

LimeChat2 でチャンネルの発言を翻訳する

Google AJAX Language API を使って、チャンネルの発言を翻訳してログに表示します。 (単に表示で発言はされない、はず) evil ちゃん 手抜きで eval 使ってるけど、JScript デフォじゃ JSON むりだよなぁ。

nsILocalFile で深いディレクトリを作成する

/home/anekos/temp ディレクトリがまでがある状態で下のを実行したら let path = '/home/anekos/temp/moge/neko/mimi/death'; let file = Components.classes['@mozilla.org/file/local;1'] .createInstance(Components.interfaces.nsILocalFile); file.init…

auto-frame-focus.js 修正

なんか、久しぶりにコミットした気がする。 http://coderepos.org/share/changeset/34522/lang/javascript/vimperator-plugins/trunk Frame のロードをまつようにしてみた。

pino ウメェ

http://reader.livedoor.com/reader に行かなくても、Vimperatorのコマンドラインからピンを開くことができます。開いたピンはlivedoor Reader上のピンのリストからも削除されます。 ウメェ。 fastladder のページ開かなくても良いのはちょっぴりうれしいか…

微妙に違ってる模様

5/11のコミットでグローバルオブジェクトのsearchがfinderにリネームされてます。たぶん単純なリネームなので以下の変更で動いています。頻繁に最新のnightly入れたりgitで取ってきたコードをそのまま使ってる人とか以外にはとりあえず関係無いですが。 プロ…

undefined の謎

問題となっている箇所についてはまだわかりませんが… .vimperatorrc でこんな感じに設定すればこのエラーは出なくなった。 let g:command_bookmarklet_use_sandbox = true うーむ。これはこれで謎。 上のコマンドは失敗するはずなので、以前のように liberat…

marker_reader.js は長文読むのに便利そう。

どこまで読んだのか迷ったりすることが割とあるので、これはありがたい。 Opera にも似たようなのが合った気がするがあれと同じなんだろうか。 ただ、スクロールに別のコマンドを要するのが難点。 j/k を上手く使えるように出来ないかな。 括弧の位置修正 ht…

読み込み失敗した画像だけリロードするナイスコマンド

重いサイトを開いてたときに、不便したので作った。 本当は、読込に失敗したフレームも再読込したかったんだけど、 やり方が分からなかったので画像のみです。 これは地味に便利かも。 ニコニコ動画とか、サムネが表示されないこと多いからなぁ。 ちなみに、…

ローカルな設定をするプラグイン欲しい

mapを変更するプラグインは既にあるけど、コマンドやヒントも出来るといいなと思っている。 デフォルトでスタイルはサイトごとに設定出来るのだから、コマンドもサイトごとに設定出来て良いような気もする。 いまはデフォルトでそういう機能が無いので、まと…

libly.js のイベント名について

Welcome to vimpr! で扱っているイベント名が "on〜" 形式なのが気になるなぁ。 addEventListener という名前の関数であれば、"on" はない方が自然に思える。 さすがにこれは勝手にコミットできないが、今から換えるのは難しいかなぁ。 とりあえず、両方受け…

Ank Pixiv Tool 1.5.0

をリリースしたさ。 https://addons.mozilla.org/firefox/addon/7614 追加されたのは以下の三つ。 コメント欄の自動オープン機能 代替ファイル名の設定を追加 無効なディレクトリを設定した場合の警告 なんか、他にも追加したいのがあった気がするけれど… な…

久しぶりのぷっしゅ

再起動後にエンコーディングがおかしくなるのを修正 タイミングに依るようだが、ドキュメントが完全に読まれていないと正しいエンコーディングが得られないのだろう。 また、特に設定する必要は無いはずなので無視するようにした。

Reserved slot index of range エラー

Firefox の拡張を作っていたら奇妙なバグ(?)に遭遇。 "Reserved slot index of range" というエラーで、起きるときと起きないときがある。 I've issued a workaround for this in 3b9f4c75bb64. From the changelog: I've narrowed down the cases in which …

JavaScript でヒアドキュメントもどき

"" で括りまくったりするのやだやだー、なときに。 let css = <>; alert(css); こんな感じで。 もっと簡単に 特定の文字列が含まれなければ、CDATA は省ける。 let css = <> Somali Ragdoll Manx ; alert(css); あくまでもモドキ 余計な空白などが入るけれど…

Pixiv の Ajax ブックマーカーを更新

ひっそりと。 サイズやツールの表示を消さないようにした。 http://userscripts.org/scripts/show/12958

set! pref="まるちばいと" が壊れていたのを修正

vimperator の :set javascript / :set nojavascript で JS の on/off 切り替え - 8時40分が超えられない - subtech を抽象化したいので作った。user_pref の boolean な値だと、set foo/set nofoo で簡単に切り替えられるため特に便利。このプラグインを入…

pluginManager Wiki 記法の Pre

最小公インデント数(?)分だけ切り詰める仕様にしてみた。 ">|| 〜 || http://coderepos.org/share/changeset/29699

Vimperator のコマンドの実装をソースから探す

たとえば、:scriptnamesというコマンドの実装をソースの中から探すとき 一番簡単なのは のように補完で description を調べて、それで検索する方法。 この場合であれば、 vimgrep /List all sourced/ *.js などで一発で出る。 これなら、ヘルプで省略パター…

stella.js ホイールでシークできるようにした

時間表示のところでホイールをクリックリッすると、シークするように。 ホイールのクリッから、実際にシークするまでは 1 秒の遅延があるようになっている。 リアルタイムに動かすと重い場合があるのと、動画の時間区切り(なんていうんだっけ?)によってはシ…

copy.js にキーワード追加

content.location オブジェクト由来の以下のキーワードを追加してみた %HOSTNAME% %PATHNAME% %HOST% %PORT% %PROTOCOL% %SEARCH% %HASH% また、"%%HOSTNAME%" のようにして、エスケープする事が出来るようにした。 この例だと "%HOSTNAME%" が得られる。%% …

pluginManager の WikiParser 修正

前にコミットしたのを修正。 http://coderepos.org/share/changeset/29665 外部から使えるように、 liberator.plugins.PMWikiParser にオブジェクトを突っ込んである。