DraftPadの内蔵ブラウザでJavascriptを実行するアシスト NetWalker

昔そんな名前の雑誌があって。


DraftPadでネット上のリンクを取得する NetSeeker(ほぼ決定版)
今月の集大成とも言えるDraftPadアシスト。今月はこのアシストで始まりました。WebDelegateの二重化という技法。DraftPadの進化が加速しすぎて把握しづらくなったので、ちょっと整理して...
「eval()を使えば」と書いてしまったので作ってみたら、本当に動いた。ここまで作ってきたNetSeeker系をすべて包括してしまうアシスト。基本形は下記の通り。

draftpad://self/web?source=<script>function main(x){location=x.URL}location=%22draftpad:///webdelegate?load=main%26unloadconfirming=true%26unloadconfirmtitle=SCRIPTを実行しますか?%26unloadconfirmdefault=OK%26unloadconfirmclose=No%26unload=function(){location=\"draftpad:///webdelegate?load=f\";f=function(x){eval(x.SCRIPT)}}%22</script>&URL=https://www.google.co.jp/search?q=<@>&SCRIPT=link=\"<a href=\"+location.href+\">\"+document.title+\"</a>\";draftpad.replaceCurrent(link);

登録リンクはこちら→ http://tinyurl.com/d6bh682



アシストを起動するとき、URLで指定したアドレスを開く。DraftPadのプレイスホルダーが使えるので、カーソル行をGoogleで検索してみました。



内蔵ブラウザを閉じるとき、SCRIPTで指定したスクリプトを実行。引用符や&、%はエスケープする必要があります。スクリプトブックマークレットと同じJavascriptで。DraftPad拡張であるdraftpad.insert()も使えます。こうなると、無限宇宙に目が眩みそう。

draftpad.insert(text) カーソル位置に text を挿入
draftpad.replace(text) 本文を text に置き換え
draftpad.replaceCurrent(text) カーソル行を text に置き換え
draftpad.close() 何もせずに終了


このアシストはマジカルです。中身はブラックボックスのまま、URLとSCRIPTの二つを書き換えればネット関連が賄える。もしSafariブックマークレットを使っておられたなら、移殖するのも簡単だと思います。「javascript:」の頭部分を消し、URL Encodeすれば完成。コツが分かれば凄まじく捗るんじゃないかな。
というか、自動作成のアシストを作るのも簡単そうに思えてきた・・・。
(追記) 作った。
DraftPadの内蔵ブラウザでJavascriptが走るアシスト NetWalker(職人版)