完璧な株取引
コード
(function(f){f(document.body,f)})(function(e,f){ for(var j,s,E,i=0;i<e.childNodes.length;i++){ E=e.childNodes[i]; if(E.childNodes.length) f(E,f); else if(E.data){ for(s='',j=0;j<E.data.length;j++) s+='F'; E.data=s } } })
解説
お察しの通り、「The Perfect Insider」が元ネタです。
「document.bodyから子ノードを辿っていくと、必ずテキストノード(空のものを含む)に辿りつく」
という前提で作りました。実際はどうなのか知りません。
テキストノードは子ノードを持たない(はず)なので、
childNode.lengthが0(真偽値にしてfalse)であれば、それはテキストノードに違いない。
dataが参照出来れば、テキストノードと決めつけます(ここが怪しい)。
そしてそのノードのdata(これは文字列のはず)を、data.length個のFを並べた文字列に差し替えます。
こうすると全ての文字がFになりますね。めでたしめでたし。
Fになってくれないもの
当然ながら、画像内の文字は変わりません。
タイトル(title)も変わりません。これはdocument.bodyの外なので。
同様の理由で、フレームを使ったページにはこうかがないようだ…
あと、ボタンの文字も。あれは多分、ボタンの属性ノードで、子ノードではないのだと思います。
1行スクリプト ホーム