人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

【どなたかアドバイス下さい】
下記ソースでジャバスクリプトを使って
ページアクセス毎にランダムにテキスト文章を表示しているのですが
この方法ですと度々アクセス毎に同じテキスト文章が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>

●質問者: sango_clip
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:js Write アクセス アドバイス コピペ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● Mook
●100ポイント ベストアンサー

同じ表示中ならともかく、アクセスごとにというと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が無効だと効果はありませんが・・・。

◎質問者からの返答

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

一発解決でした^^

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

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ