JavaScript でグローバル領域を汚染しているプロパティを見つける – Null.ly
上記記事のコードをブックマークレット化しました。おもしろい!
元記事のコードはこちら -> javascript global leak detector
jsGlobalLeakDetector
上記リンクをブックマークバーにドラックなどして登録して好きなサイトで実行してください。
iOS登録用: jsGlobalLeakDetector
上記リンクをクリックしてから、ページをブックマークして、?以前の文字を消去してください。
手軽に見れて楽しい。
Google,Amazon,楽天,Twitter,自分のサイト,クッキークリッカーなどなど試してみると面白いかも?
(クッキークリッカーはJavaScriptでチート出来るっていっても基本Global領域の関数使わずにGame.なんちゃらでアクセスするはずなのであんまり面白くなかった。)
コード
var leak = []; var iframe = document.createElement(‘iframe’);
iframe.style = ‘display: none;’; document.body.appendChild(iframe);
var window = iframe.contentWindow;
for (var p in this) { if (void 0 === window[p]) leak.push(p); }
document.body.removeChild(iframe);
alert(leak);
}).call(this);
見たらわかるけど無圧縮版で既存のコードをブックマークレットで楽に使えるようにしただけです。(冒頭のリンクは圧縮してます)
一応GitHubにもあげてて変更もあるかも知れないのでGitHubリンク↓
misc/JavaScript/detect-global-properties.js at master · haya14busa/misc
iframeってこんな使い方があるんですね。iframe作って、display:none;してごにょごにょしてremoveしてる。
発見だ。
全く関係ないけど、iframeを普通に使ったブックマークレットの例↓
Aggressive Engineer: 便利ブックマークレット その12: Iframeで外部ページを表示させる
クリックで消す動作とかちゃんと実装すれば面白そう。サイトにiframe埋め込むなんてしたら今じゃプギャーされるはずだけど、ブックマークレットとして使うなら問題ないよね♡