haya14busa

haya14busa’s memo

JavaScriptでグローバル領域を汚染しているプロパティを見つけるブックマークレット

JavaScript でグローバル領域を汚染しているプロパティを見つける – Null.ly

上記記事のコードをブックマークレット化しました。おもしろい!

元記事のコードはこちら -> javascript global leak detector

jsGlobalLeakDetector

jsGlobalLeakDetector

上記リンクをブックマークバーにドラックなどして登録して好きなサイトで実行してください。

iOS登録用: jsGlobalLeakDetector

上記リンクをクリックしてから、ページをブックマークして、?以前の文字を消去してください。

手軽に見れて楽しい。

Google,Amazon,楽天,Twitter,自分のサイト,クッキークリッカーなどなど試してみると面白いかも?

(クッキークリッカーはJavaScriptでチート出来るっていっても基本Global領域の関数使わずにGame.なんちゃらでアクセスするはずなのであんまり面白くなかった。)

コード

// https://gist.github.com/nulltask/7412711#file-index-js
javascript:(function() {

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埋め込むなんてしたら今じゃプギャーされるはずだけど、ブックマークレットとして使うなら問題ないよね♡

Comments