プロが教える店舗&オフィスのセキュリティ対策術

下記のような記述で、ページを読み込むたびに、一部をランダムで別ページが表示されるようにしているのですが・・・
その際に、何回も読み込みをしカチカチとリンクをクリックした時のような音がし、1.htmlを表示したかと思えば3.htmlになったり5.htmlになったり(その時々で表示されるページは違いますが、多い時では5回以上変わります)します。
そして、ブラウザの戻るボタンを押しても一回では元のページに戻れなくなってしまいます。

ノートパソコンや、回線速度の遅い状況下で起こりやすいと思うのですが・・・

これはどうにかならないものでしょうか?
よろしくお願いします。

<script>
tsURL=[];
tsURL[0]="1.html";
tsURL[1]="2.html";
tsURL[2]="3.html";
tsURL[3]="4.html";
tsURL[4]="5.html";
</script>


<iframe style="margin-left:-3px;" width="620" height="142" name="tsz" align="center" frameborder="no" scrolling="no" onload="if(this.title==''){this.src=tsURL[Math.floor(Math.random()*5)];this.title=this.src;frm1=this;setTimeout('frm1.title=\'\';',1000)}">
</iframe>

A 回答 (2件)

#1です。



こんな感じ?

<html>
<head>
<script type="text/javascript">
window.onload = function() {
var tsURL=['1.html','2.html','3.html','4.html','5.html'];
document.getElementById('ifrm1').src = tsURL[Math.floor(Math.random()*tsURL.length)];
}
</script>
</head>
<body>
test<br>
<iframe src="" width="620" height="142" id="ifrm1">
</iframe>
</body>
</html>

スクリプトがオフの場合を考慮するなら、iframeのsrcには初期状態でその場合に表示するものを指定しておくのが良いかも。(1.htmlなど)

この回答への補足

何度もお手数をお掛けします。
余計な読み込みは無くなったのですが、ブラウザの戻るボタンで戻る時にiframeの内容が2回表示されてしまいます。
2回戻るボタンを押さないと前のページに戻れないのです。
おまけに、一度戻るとブラウザの進むボタンでは進めなくなってしまいます。
これはどうしてなのでしょうか?

ちなみにブラウザの進むや戻るのボタンにカーソルを合わせた時に大元のページではなく、iframeの内容が表示されます。
「○○(iframeの内容)に戻る」みたいな感じです。
これも何か関係があるのでしょうか?

何回もすいませんが、宜しくお願いします。

補足日時:2009/08/25 18:53
    • good
    • 0

かなりややこしい手順を取っているみたいですが、


1.html~5.htmlはみなtitleがないのだろうと想像します。
titleを見てリロードするか決めているけれど、その後で仮のtitleをつけて1秒後に消すようなことをしているので、onload時にtitleがなければいつまでもランダムにリロードを繰り返すという仕組みになっているのでは?
(再ロードにキャッシュを使用することで、なんとかなっているのかな?)

なぜわざわざそのような方法を取っているのか不明ですが、
iframeのオンロードではなく、親ページのロード時にiframeのsrcをランダムに設定してあげるようにするのでは、何か都合が悪いことでもあるのでしょうか?

この回答への補足

いいえ、単にこのやり方知らないだけです。
HP作成のサイトで見つけて応用しただけなので・・・
親ページのロード時にiframeのsrcをランダムに設定してあげるようにするには具体的にはどのように記述すれば良いのか教えて頂けないでしょうか?

ご面倒をお掛けしますが、宜しくお願いします。

補足日時:2009/08/23 14:06
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!