js.bml[4] = 'Run!++'

任意のコードを実行するBookmarklet Ver1.1.1 (Kanasansoft Web Lab.)
似たようなものは(ページに直接埋め込むタイプ)自分でも適当に書いて使ってた。
別窓で開くとポップアップブロックに引っかかるのが難だが,編集しやすいのが気に入ったのでちょっと自分用に改造してみる。

  • 返り値をちゃんと出力。
  • ボタンをクリックするのが面倒なのでShift+Enterで実行するように*1
  • $とかあると便利なので外部スクリプトを読み込む。
  • ゴルフ*2
javascript:(function(p){with(p.document){open();close(write("<script src=http://d.hatena.ne.jp/js/prototype-1.4.0.js charset=shift_jis></script><style>body{margin:0px;padding:0px;}textarea{width:100%;height:49%;font:1em monospace}</style><textarea onkeypress=\"if(event.keyCode==13&event.shiftKey){with($('O'))try{value=eval(this.value)+'\\n'+value}catch(e){value='Error:'+e.message+'\\n'+value}return!!this.focus()}\"></textarea><textarea id=O></textarea>"));title='Run:Shift+Enter'}})(open())

*1:入力エリア自身のイベントハンドラ内で eval してるため,副作用として「this.value += 」とすれば直接値を持ってこれる

*2:[07-12-04] IE6で動かなかったのでもう少し削った。495バイトが限界?