2014/03/20

GlimmerBlockerでインラインフレームをブロック

(追記:2014.4.6)
更に追記なのですが、このエントリーがまったく無意味になってしまいましたので上部に追記します(笑)
公式のリファレンスを読むと、
gb.zapIframeElements();
この1行をtransformタブ内に書くだけで、すべてのインラインフレームを表示しなくなります…ああ、なんて簡単な^^;
(transformタブはAction: でWhitelist URL, optionally modifying contentを選択すると表示されます。)

また、JavaScriptのブロックも
gb.zapScriptElements();
を同様にtransformへ書き込むだけ。
<head>内にCSSを書き込む場合は、
gb.addStyleElement(contents);
contentsはCSSの内容…を書き込むとそのページだけのユーザスタイルシートとして機能します。
例えばこんな感じ→gb.addStyleElement("body{font-size:100px !important;}");

これで大体の事はできそうですね。
他にも面白そうな物として、
replace(/regexp/, "some text");
これは、文字の置き換えに使えるので、NGワードを非表示するなどして利用出来ます。
簡単な物だと、replace(ほにゃらら, "");でページに含む「ほにゃらら」を非表示にできます。(もしかしたら""で囲む必要があるかも?)
ほにゃらら部分は正規表現に対応しているので、上手く書けば表記の揺れがあっても適応出来ますね。
上記の書き方だと最初に出てきた文字しか置き換えてくれないのですが、以下のように書くとマッチする物すべてに適応されます(グローバルサーチ)。
replace(/ほにゃらら/g, "");
ブラウザのキャッシュをクリアしないと確認出来ないので注意。


本当に奥が深いソフトです。
↓2014.3.20公開


広告などを表示する為に、ページの中にページを表示するインラインフレーム iframeを使っているサイトがけっこうあります。
このiframeをブロック出来ないものかと調べていたら、なんと 前々回トラッキングサイトのブロックに使った GlimmerBlocker でブロック出来る模様。

やり方は、
  1. カスタムフィルターを作る。
  2. Action: でWhitelist URL, optionally modifying content を選択。
  3. Host: をisやis in domainなどにし、適用させるサイトのドメインを入力。
  4. 上部タブから、cssを選択。
  5. 空欄にiframe { display: none ! important }と入力。〜優先的に表示を消します!の意味。
  6. Saveを押して完了。
これで指定したアドレス内のiframeをすべて非表示にします。

今まで上部のタブの存在に気が付きませんでした…(笑)

JavaScriptも出来る様なので、前回CSSを使ってリンク先に特定マークを付けるといったことも、このGlimmerBlockerだけで出来そうです。

また、all hosts対称にして、
IFRAME[SRC*="a."] { display: none ! important }
IFRAME[SRC*="ad."] { display: none ! important }
IFRAME[SRC*="ads."] { display: none ! important }
IFRAME[SRC*="/ad"] { display: none ! important }
IFRAME[SRC*="/A="] { display: none ! important }
IFRAME[SRC*="/click"] { display: none ! important }
IFRAME[SRC*="?click"] { display: none ! important }
IFRAME[SRC*="?banner"] { display: none ! important }
IFRAME[SRC*="=click"] { display: none ! important }
IFRAME[SRC*="/ar.atwo"] { display: none ! important }
IFRAME[SRC*="spinbox."] { display: none ! important }
IFRAME[SRC*="transfer.go"] { display: none ! important }
IFRAME[SRC*="adfarm"] { display: none ! important }
IFRAME[SRC*="bluestreak"] { display: none ! important }
IFRAME[SRC*="doubleclick"] { display: none ! important }
(参考サイト: Technology, Music and Everything Else…
などを指定するなど、工夫次第で便利になりそうです。

参考サイト:I just wanted to share with you... (filters for glimmerblocker) - MacRumors Forums
MacでもGlimmerBlockerを使ってニコニコ動画のNGコメントを無限に追加する - kiyohoge


(追記 2014.3.21)
ググっていたらGlimmerBlockerの詳しい解説が!
広告ブロックだけじゃない “GlimmerBlocker” | トラネコのゲーム日記
リファラの偽装まで…大体の事は出来てしまいそうです。使いこなすには、ちょっと時間がかかりそう…(笑)