広告殺し [投げっぱなしツール]
無料のWWWスペース(参考)を利用して、自分のWWWサイトを持っている人は結構居ます。
そして、無料WWWスペースを使用した場合、大抵は、ページの隅の方に広告が表示されます。
が、どうやら、それが気に入らなくて、表示しないようにしたい………と、まぁ、そんな感じなのです。
さて、
この手の広告は、HTMLファイルをサーバに送った時に自動で追加されるので、利用者がどうにか出来るような代物ではありません。
ブラウザが、HTMLファイルを要求したら、もれなく広告が付いてきます。
なら、拡張子をtxtに変えてみたら(HTMLファイルではなく、プレーンテキスト扱いにする)どうだろう?
某無料WWWスペースでは、広告は付かなかった。
よし、成功。
おわり。
って、ちょっと待てっ!
拡張子をtxtに変えたファイルは、あくまでテキストファイルであって、HTMLファイルではないので、ブラウザにはHTMLのタグとかがそのまま表示されてしまいます。
もっとも、IEは、「拡張子がどうなっていようとファイルの中身がHTMLっぽいものはHTMLと解釈する」という変な仕様のため正しく表示されてしまいますが、この動作は普通ではないので当てにしてはいけません。
とにかく、拡張子がtxtなら、広告は付かないことは解りました。
(これでも広告が付くようなら、jpgでもdatでも好きなようにすれば良し)
あとは、txtファイルをブラウザにHTMLファイルとして解釈させれば良い。
だんだん、書くのが面倒になってきたので、ソースコードを一挙公開。
<html> <head> <title>広告殺し</title> <script type="text/javascript"> <!-- function createXMLHttpRequest(funcForFf, funcForIE) { var obj = null; try{ // 非 IE用 obj = new XMLHttpRequest(); if (obj != null) { obj.onload = funcForFf; return obj; } } catch(e) { } // IE用 try { obj = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e) { try { obj = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e) { return null; } } if (obj != null) { obj.onreadystatechange = funcForIE; } return obj; } var httpObj; function loadBody() { var p = document.location.href.lastIndexOf("?"); if (p == -1) return; var file = document.location.href.substring(p + 1); if (file == "") return; httpObj = createXMLHttpRequest(showFf, showIE); if (httpObj) { httpObj.open("GET", file, true); httpObj.send(null); } } function showFf() { document.open(); document.write(httpObj.responseText); document.close(); } function showIE() { if (httpObj.readyState == 4) { document.write(httpObj.responseText); } } // --> </script> </head> <body onload="loadBody()"> </body> </html>
手順は、次の通り
- 上のコードを「no_ad.html」としてサーバに置く(ファイル名は何でも良い)
- 本来表示したいHTMLファイルの拡張子をtxtに変えて、「no_ad.html」と同じサーバに置く(仮に「test.txt」とする)
- 「http://サーバの名前/no_ad.html?test.txt」でアクセス。(要はno_ad.htmlの後ろに「?表示したいファイル」を付ける)
FirefoxとIEで確認。
OperaとかSafariとか、その他諸々のブラウザではどうなるか知りません。
拡張子を変更する一手間があるものの、比較的簡単に広告が消せます。
でもって欠点。
- 文字化けしやすい。(参考)
- ブラウザの戻るボタンが効かなくなる。
- Javascriptが無効になっていたり、古いブラウザでは何も表示されない。
- 1ページ表示するのにサーバに2回アクセスに行く。
- ポップアップ型の広告には、多分効果がない。
それと、もう1つ。
広告消したら、多分、規約違反になります。
個人的には、
「無料なのだから、広告くらい我慢する」とか
「一昔前のやたらと鬱陶しい広告と違って、最近のはシンプルなので気にしない」とか
「有料の広告無しオプションがある」とか
「時代はブログ」とか
思ったりします。
というか、広告ブロック機能付きのブラウザを使うのが一番だと思う。
今日の一冊 | |
|
コメント 0