alnumpop

http://gist.github.com/479545 履歴・タブ一覧のポップアップにアクセスキーを振る。 key{config,snail} から開く設定と併用。

lmnpop

https://addons.mozilla.org/addon/196133 / GitHub - satyr/lmnpop: Pops elements as resizable windows. 説明 DOM 要素をポップアップ 詳細 親切な誰かが書いてくれた 用途 Flash 観賞等 経緯 単に open('data:text/html,'+ parent.innerHTML) とかすると…

XPC cache removal

Fx3.7a で JS Module の変更が思うように反映されない件の解決策を教わった。 16:53 (satyr) how do you reload jsm in nightly? restarting Firefox has no effect 17:03 (Unfocused) if you're on windows, delete XPC.mfl in your profile directory (or …

node4x

.js

XML/XMLList → Node を愚直に。 function node4x(xml, doc){ doc = doc || document; if(xml.length() === 1) switch(xml.nodeKind()){ case 'attribute': let at = true; case 'element': let {uri, localName: name} = xml.name(); if(at){ at = uri ? doc…

Halt Alert

http://gist.github.com/418451 alert ループ脱出用 uc.js。commonDialog.xul に checkbox を追加する。 Stop script 親ウィンドウのスクリプト実行を不許可に。setInterval(alert,0) とか onkeydown=onmousemove=alert とかに有効。 Wipe window 親ウィンド…

insertText

テキストボックス((textarea, input:-moz-any(:not([type]), [type=text], [type=password]))) tbox のカーソル位置へ文字列 text を挿入したいとき,HTMLTextAreaElement の貧弱な機能で実現するとこんな風になる。 var {value, selectionStart, selectionE…

xqjs

http://github.com/satyr/xqjs (AMO) 簡易JS実行環境。習作第二弾。 機能 DOMi 風の対象ウィンドウ選択 プリプロセッサ JSマクロ CoffeeScript 入力履歴 単語補完 出力用関数とか は this を参照 作成動機 一々 function を書きたくない。 話題の CoffeeScri…

cal

CmdUtils.CreateCommand({ name: 'cal', previewUrl: <>data:application/vnd.mozilla.xul+xml, <datepicker type="grid" align="top" xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"/>, }); はてなグループ 呟いて済ませるつもりが無闇に長い MIME type と xmlns のせいで140字に収まらなかった。悔しい。 jQuery と歴史的仕様のおかげでギリギ</datepicker>…

uc

http://github.com/satyr/uc (AMO) userChromeJS もどきに subscriptoverlayloader.js 相当の機能を付けた拡張。 いい加減 XUL を覚えねばと思い*1,習作として作成。 ○ 読み込み元を複数指定可能*2 若干高速 メタ情報をいちいち読まない(起動時とファイル…

プロトコル別ローカルファイル上クライアントサイド永続ストレージ事情

code \ URI scheme file: chrome: resource: localStorage ×*1 ×*2 ✔ globalStorage[location.hostname] ×*3 ✔ ✔ document.cookie ✔ ×*4 ✔ Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2 落としてきた twicli…

radiko lite

妙に重いし変なエラーを吐くので枝葉を払った。 http://gist.github.com/346209.txt?.user.js ++onhashchange 番組表に埋め込んでみた らどの局がかかってるか分からなくなったので表示欄を追加 Greasemonkeyでサイト既存CSSの影響を受けないポップアップパ…

escape(_,0)

SpiderMonkey の escape() は第二引数にビットフラグを受け取る。 Amazon の API 用にこんな関数を書いてて気付いた。 function amazEnc(str) encodeURIComponent(str).replace(/[!\'()]+/g, escape).replace(/[*]/g, '%2A'); amazEnc('unescape(_)') //=> E…

valueOf() と SpiderMonkey

.js

http://gist.github.com/330746↓こうなるはずが (v8 / Nitro / JScript) +_ -> _.valueOf(undefined) "" + _ -> _.valueOf(undefined) SpiderMonkey*1だと Object(_) -> _.valueOf("object") +_ -> _.valueOf("number") "" + _ -> _.valueOf("undefined") 該…

caret@hint

Hit-a-Hint もどきに続き,Caret Hint もどきを作った。 caret@hint · GitHub javascript:"caret@hint",['http://gist.github.com/230771.txt',function(d){d.body.appendChild(d.createElement('script')).src=this[0]}][1](document) 機能 ヒントで選んだ…

zEn4X

.js

Zen Coding 風の記述から E4X を生成するのを書いてみた。 zen4x('dl#id.cla.ss > dt{content} + dd > input[type=radio][name=$]*2') <dl id="id" class="cla ss"> <dt>content</dt> <dd> <input type="radio" name="1"/> <input type="radio" name="2"/> </dd> </dl> 使い途は…。

{__proto__:null} のススメ

.js

特に新しい話題でもないけど,使われているところをあまり見ない気がするので。 HashMap/Dictionary として narcissus/jsdefs.js#142 にもあるように,単に {} だと Object.prototype が付いて廻るので役に立たないことがある。辞書として使うなら {__proto_…

eval(uneval(function()_))

function f(){let _,{x}=0} uneval(f); //=> function f() {var _, var {x} = 0;} eval(uneval(f)); //=> SyntaxError: missing variable name というバグに出くわした。トップレベルなので var に変わるのはいいとして,問題は変に増えて構文エラーになると…

summary ⇔ content

Firefoxのフィードプレビュー画面、なんでショボいんだ、省略されてるのかわらかん http://twitter.com/33/status/5119532557 本当にそうだと思うので,書き換えてしまうことにした。 --- a/components/FeedWriter.js +++ b/components/FeedWriter.js @@ -45…

zap

ごるふ中に見つけたマクロ。 (= x (foo x ...)) ; ↓ (zap foo x ...) ; -1B~ 前々から x=x.foo(...) を x.=foo(...) と書きたくて仕方ないので少し感動。 無論 x は任意の place を取れる。 arc> (= me (obj name "satyr")) #hash((name . "satyr")) arc> (z…

プラグインからフォーカスを外す

93149 - [meta] No way to move focus between plugin and browser from keyboard を MozRepl 経由で外部から。 http://gist.github.com/201343↑こんな感じのスクリプトを書いて「ショートカットを作成」し,実行時の大きさを「最小化」にして適当なキーを割…

タブリストのポップアップ

*1 var p = gBrowser.mTabContainer.mAllTabsPopup; p.style.visibility = "visible"; p.openPopupAtScreen(screen.width, 0); //document.getAnonymousElementByAttribute(gBrowser.mTabContainer, 'anonid', 'alltabs-popup').openPopup(gBrowser, '', 0, …

scoring abbreviation

Alcor の Abbreviation Scoring goruby 的省略形に順位を付ける話。 IRC で話題に上った LiquidMetal を見てもっと簡単にできそうと考え古い方のパーサに入れてみた*1のが一月半前。個人的に重宝している。実装はコレ↓ // Represents how well an abbreviati…

slightly more ubiquitous

keyconfig FireGestures MozRepl + Ruby http://gist.github.com/160204 MozRepl + xyzzy http://gist.github.com/186012 Ubiquity#preview() は 0.5.5 から。 Firefox を前面に持ってくる方法が判らず,minimize();restore();focus() は苦肉の策。

comics.com

を快適にするためいくつか書いた。 comics.com simple | Userstyles.org http://wedata.net/items/29481 comics.com.ubiq.js 余談 SEARCH に選択肢は無いが,パラメータをいじれば逆順に表示可能。これで古い方から順に読める。 javascript:/*comics.com:rev…

ubigist (again)

http://ubigist.appspot.com/ jgate で cron が使えなかったので練習を兼ねて GAE + web.py で書き直してた。 タイムアウト制限が厳しい。gist が基本的に遅いので引っ掻きにくくて困る。 DataStore が使い辛い。重いし,一回で 1000 までしか取ってこれない…

拙作 0.5

0.5 API 対応*1のコマンドフィード。新作含む。随時更新。 Pack はてブ(([http //d.hatena.ne.jp/murky-satyr/20080902/1220311192])):hatebu-it, hatebu-hotentry, hatebu-comments, hatebu-search Google(([http //d.hatena.ne.jp/murky-satyr/20090306/go…

ねがこめ JP

ıɥsǝʞɐʇ (@accord) | Twitter ak on Twitter: "Ubiquity、プリリリースのものに比べてだいぶ軽くなったけど挙動がまだあやしい。あと Migemo とか使えないと日本語でコマンド打つのはつらい #Ubiquity" yoshy on Twitter: "ubiquity 0.5 にしたら, 勝手に …

for-let trap 2

.js

for(let a = 1, b = a; 0;); // NG (a is not defined) for(var a = 1, b = a; 0;); // OK let(a = 1, b = a){} // NG (a is not defined) let(a = 1, b = a) 0 // NG (a is not defined) { let a = 1, b = a } // OK (!) { var a = 1, b = a } // OK [http:…

Unfeatured Changes in 0.5

Things unlisted in the Release Note. Utils log(), signHMAC(), dump(), clipboard, json, OS Improved tabs, history Focus control with openUrlInBrowser() Extra arguments of setTimeout() Faster trim() CmdUtils absUrl(), previewList(), onUbiqui…

RegexpTrie

次パーサで必要になったので弾さんの Regexp::Trie を JS1.8 に拝借した。 http://gist.github.com/130917欲しい機能を若干追加したとこ以外はほぼ逐語訳できたと思う。