So-net無料ブログ作成

広告殺し [投げっぱなしツール]

無料の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つ。

広告消したら、多分、規約違反になります。

個人的には、
「無料なのだから、広告くらい我慢する」とか
「一昔前のやたらと鬱陶しい広告と違って、最近のはシンプルなので気にしない」とか
「有料の広告無しオプションがある」とか
「時代はブログ」とか
思ったりします。

というか、広告ブロック機能付きのブラウザを使うのが一番だと思う。

[車(セダン)] 今日の一冊
戦争請負会社

戦争請負会社

  • 作者: P.W. シンガー
  • 出版社/メーカー: 日本放送出版協会
  • 発売日: 2004/12
  • メディア: 単行本

タグ:JavaScript
nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

トラックバック 0