JavaScript を使って、利用規約を読ませるスクリプト

件の無断リンクの話に便乗して、ユーザに無理やり利用規約を読ませるコードを JavaScript で書いてみた。
誰かが document.referrer 使ったコードを出してたけど、こっちは document.cookie を使用してみた。


test.html

<html>
    <head>
        <script language="javascript" src="rule.js"></script>
        <script language="javascript">
            html = '<span style=\"color:red\">さんぷるてきすと</span>';
        </script>
    </head>
    <body>
        <div id="main">ブラウザが対応していません。</div>
    </body>
</html>


rule.js

key = "agress_key=ABCDEFG";
rule = 'ほげほげ。規約に同意しますか?<br/><button onclick=\"SetCookie()\">同意する</button> <button onclick=\"location.href=\'http://www.yahoo.co.jp\';\">同意しない</button>';   // ここに規約を全部書く

function SetHtml(html) {
    if (document.all) {
        document.all("main").innerHTML = html;
    }
    else if (document.layers) {
        body = document.layers["main"];
        body.open(); body.write("<div>"); body.write(html); body.write("</div>"); body.close();
    }
    else if (document.getElementById) {
        document.getElementById("main").innerHTML = html;
    }
}
function SetCookie() {
    if (document.cookie == null || document.cookie.indexOf(key) < 0) {
        document.cookie = key;
        ShowBody();
    }
}
window.onload = function() {
    SetHtml(document.cookie == null || document.cookie.indexOf(key) < 0 ? rule : html);
}

クッキー key が設定されてなかったら利用規約を表示して、そうじゃなければ本文を表示するスクリプト。ぶっちゃけ手抜き。JavaScript あまり使ったこと無いし。


一応、cgi 使えなくてもそれらしいものは書けますよ〜との意味を込めて作りました。万一使用する場合は at your own risk でお願いします。文句言われても責任もてん (^-^;;


あと、ページ本文自体はソース見れば閲覧可能だから、最低限 escape とかしたほうが良いのでは、と思う。あるいは外部ファイルに落とし込むか。