【どなたかアドバイス下さい】

下記ソースでジャバスクリプトを使って
ページアクセス毎にランダムにテキスト文章を表示しているのですが
この方法ですと度々アクセス毎に同じテキスト文章が2回続けて表示される事があり
へたしたら3回連続とかもたまにあるのでちょっとこれだと困っています。
せめて1回目に表示された文章が3回目に表示される位は全然問題ないのですが2回連続はちょっと問題ありなんです。

ちなみに下記ソースは例ですので同一ページにジャバスクリプトを記述していますが実際に使用する時はジャバスクリプトは
専用のjsファイルにまとめて記述してそのjsファイルを読み込む形で使用します。

ジャバスクリプトに関してはずぶの素人でして出来ればサンプルソースなどを書いていただきそのままコピペで
使える状態でアドバイスいただけると助かります。

宜しくお願いします^^


<html>

<body>

<script language="javascript">
<!--

msg = new Array();
msg[0] = "1";
msg[1] = "2";
msg[2] = "3";
msg[3] = "4"
msg[4] = "5"
msg[5] = "6"
msg[6] = "7";
i = Math.floor(Math.random() * msg.length);
document.write(msg[i]);

//-->
</script>

</body>
</html>

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2008/10/26 15:29:47
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:Mook No.1

回答回数1314ベストアンサー獲得回数393

ポイント100pt

同じ表示中ならともかく、アクセスごとにというとCookieの使用になるでしょうか。

http://www.tohoho-web.com/wwwcook.htm#CookieWrite

http://www.red.oit-net.jp/tatsuya/java/cookie.htm


<script language="javascript">
<!--
    msg = new Array();
    msg[0] = "1";
    msg[1] = "2";
    msg[2] = "3";
    msg[3] = "4";
    msg[4] = "5";
    msg[5] = "6";
    msg[6] = "7";

    var i = Math.floor(Math.random() * msg.length);
    if(document.cookie != "") { 
        var p = document.cookie;
        while ( p == i ) {
            i = Math.floor(Math.random() * msg.length);
        }
    }
    document.write(msg[i]);
    document.cookie = i;
//-->
</script>

のような感じでしょうか。

当然のことながら、Cookieが無効だと効果はありませんが・・・。

id:sango_clip

ご回答ありがとうございました。

一発解決でした^^

サンプルソースのみならずCookieの解説ページまで付けていただき

至れり尽くせりで本当に助かりました。

まあーーCookieが無効の場合は割り切ってあきらめるしかないと思います。

2008/10/26 15:23:47

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません