10月 2009
9件の投稿
6タグ
QUnitのTextMateバンドル作った
探しても見つからなかったので作ってみました。
javascript-qunit-tmbundle
中身はこんな感じ。
equalsとsameはどっちのキーでも補完したかったので2つずつあります。
QUnit - jQuery JavaScript Library
2タグ
インスタンスの関数オブジェクトを自動的に取得したい
Pool.jsのバグを何とかしたい。
Pool.jsは実行元の関数オブジェクトのプロパティに__pool__として自身のインスタンスを保存、その際関数オブジェクトはarguments.callee.callerで取得しています。この方法は呼び出し元が関数やオブジェクトの時は問題なかったけど、クラスのインスタンスの場合挙動がおかしいことに気付いて困り中。クラスの場合、arguments.callee.callerがインスタンスの関数オブジェクト = そのコピー元のprototypeの関数オブジェクトなので
クラスのインスタンスを跨いでキャッシュが共有されてしまう。
ことになってしまいます。新鮮だけど使いにくい。確認コードはこんな感じ。
Foo = function() {};
Foo.prototype = {
test: function() {
...
2タグ
2タグ
今日のExternal Interfaceハマり
IE
Flash側のメソッド(ExternalInterface.addCallback)にplay、stopを宣言していたら動かない。ExternalInterface.addCallback IE エラー « Hyhy’s Weblogにある
ExternalInterface#addCallback で追加した関数名が、そのコールバックを呼び出した場所の this のプロパティ、プロパティチェインにその関数名を含む場合、エラーになる。
これに引っかかると思われる。JSでは宣言していないのでIEに何かあるんだろう・・。この仕様は危なすぎる。解決後に同じ事書いてるブログを発見。IE6で特定の名前のメソッドをExternalInterface.addCallbackできない - holidays-l開発ブログ
Firefox
...
2タグ
$Xを読み込むブックマークレット
load $X
XPathを調べる時に毎回$XをFirebugのコンソールにコピペしていたのでブックマークレットにした。読み込んでいる$Xはos0xさんのvery simple $X。
3タグ
Skip RedirectorをMEGAUPLOADに対応させた
MEGAUPLOAD側に修正が入ったため2010-02-26現在この方法は使えません。
hail2u.net - Weblog - MEGAUPLOADから簡単にダウンロードがそのまま取り込めそうだったので入れました。
Skip Redirector
このバージョン(0.5)からdocument内のリンク、ボタンをXPathで探す方法に加えて、URLを正規表現で置き換える方法が追加されます。SITEINFOの指定方法はMEGAUPLOADの指定を参考にして下さい。
urlキーで()を使ってグルーピング
replace_urlキーで後方参照を使ってURLを組み立てる
感じで指定します。コード的にはこんなです。
location.href = location.href.replace(new RegExp(url), replace_url);
3タグ
Safari + GreaseKit用ReblogCommand作った
FirefoxにはReblogCommandという、キー一発でリブログしてくれるリブログ生活にはなくてはならないGMがあるのですが、GreaseKitの制限によりSafariでは動きません。くやしい>< でもリブログ出来る範囲をTumblr内に限定すれば動きそうだったので(クロスドメイン制限が問題なのです)、Dashboard限定でSafariで動くバージョンを作ってみました。
Tumblr Dashboard Quick Reblog
GitHub
標準でTumblrのDashboardにその場でリブログするボタンを追加します。
リブログ前後で顔が変わる:D
...
1タグ
GMはレポジトリまとめることにした
http://github.com/yoko/userscripts
4タグ
Skip RedirectorがFirefoxで動いてなかった
Skip Redirector
FirefoxではcreateEventで作ったイベントからa要素をクリック出来ないみたいだ・・。a要素の時だけ以前のようにlocation.hrefで飛ぶようにしてみた。a要素にtarget属性が指定されてても無視されます。出来るなら統一したいなー。
1.1.2で統一しました。初期化処理をinitMouseEventにしたら上手くいったみたい。今まではinitEventを使っていました。
e.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
引数多い。
やっぱりだめみたい。上手く行ったと思っていたのは、そのa要素にonclickイベントが付いていただけだったっぽいです。むー。
...