Bookmarklet Quine
javascript:eval(_='(u=unescape)("javascript:eval(_=%"+27)+_+u("%"+"27)")')
http://ja.doukaku.org/comment/8464/
久々のどう書く。Quine by murky-satyr を弄っただけ。
ごるふ的にはこれで満足だが,
- 返値をエコーしない Safari で動かない
- 作法がどうとか書いてしまった手前なんとなく気まずい
- 日記のネタが欲しい
等の理由により行儀良く書き直したものを過程付きで記しておく。
javascript:Quine:with({_:''})eval(_)
ガワを作成。
javascript:Quine:with({_:'void(prompt("",""))'})eval(_)
出力部を挿入。
javascript:Quine:with({_:'void(prompt("","javascript:Quine:with({_:'"+_+"'})eval(_)"))'})eval(_)
前後をコピペして連結
javascript:Quine:with({_:'void(prompt("",unescape("javascript:Quine:with({_:%27"+escape(_)+"%27})eval(_)")))'})eval(_)
内側の「 '
」をエスケープ
javascript:Quine:with({_:'void(prompt("",unescape("javascript:Quine:with({_:%"+27+escape(_)+"%"+"27})eval(_)")))'})eval(_)
URLデコード対策して完成。