SSブログ

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

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

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。