なぜかわからないけど unsafeWindow 中のオブジェクトの prototype がとれないっぽい……
unsafeWindow.Hatena.Haiku.EntryForm.prototype
でもって回避しようとして以下のようなコードを書いてみたけど
function unsafeeval (code) {
var d = new Deferred;
unsafeWindow.___eval = arguments.callee;
arguments.callee.callback = function (r) {
delete unsafeWindow.___eval
d.call(r);
};
unsafeWindow.location.href = "javascript:"+encodeURIComponent("___eval.callback("+code+")");
return d;
}
unsafeeval("Hatena.Haiku.EntryForm.prototype").
next(function (proto) {
alert(proto.showDrawForm);
proto.showDrawForm = function () {
alert("aaa");
};
alert(proto.showDrawForm);
});って感じになる。javascript:alert(Hatena.Haiku.EntryForm.prototype.showDrawForm) するとちゃんと設定された関数が表示されるんだけど、実行はされない (もとの関数はもちろんよばれない)。だれかたすけて>< これは Fx のバグ?
prototype 以外への書きかえはもちろんうごく……