• ベストアンサー

リロードさせるには?

時間ごとに表示させる画像を変えるスクリプトを作成したのは よいのですが、時間が切り替わるとき、3時から4時など 閲覧している時に画像を切り替えるには、どのようにしたら よいのでしょうか? 時間が切り替わったときに、1回リロードをかければ よいのはでは?と思うのですが、どうしてもわかりません。 ご教授よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
noname#199778
noname#199778
回答No.1

現状、どのようなスクリプトで時間ごとの画像の表示を切り替えているかがわからないので、とりあえず時間が変わるごとにリロードをかける方法についてアドバイスします。 時間が切り替わるごとにリロードをかける場合は、ローカルの時間を継続的に取得していき、特定の値が変わったときにリロードをかけるようにすればよいでしょう。 一例を挙げてみます。 now0= new Date(); hr0= now0.getHours(); function TMRL(){ now=new Date(); hr=now.getHours(); if (hr!=hr0){ location.reload();} } RL=setInterval("TMRL()",60000); スクリプト中に以上のような記述を入れれば、時間が変わるごとにページをリロードします。 スクリプトの動作を説明すると、  始め(スクリプトがロードされた時点)に現在時刻を取得し、それを変数hr0に格納します。  その次は関数の定義で、この関数の実行時に改めて現在時刻を取得し、変数hrに今の時間を格納して、hrとhr0の値を比較します。 値が異なれば、時間が変わったということですから、そのときはリロードを行います。  関数のあとの部分は、RLというIDをつけて、1分(60000ミリ秒)ごとに関数TMRL()を実行させるようにしています。 これで実現可能だと思います。 なお、RL=setInterval("TMRL()",60000)の第二引数を変えれば、関数を実行する時間間隔を変更することができます。 ただ、閲覧側としては、意図しないところでリロードを始められると、不快感があるかもしれません。 一定時間ごとにリロードがかかることをページ上で注意しておくか、あるいは画像の変更を、一定時間ごとに画像のロールオーバー効果で処理させるスクリプトにした方が、スマートなページになると思います。 参考になれば幸いです。

arumajiro39
質問者

お礼

本当にありがとうございます。 ちゃんと動作いたしまいた。 こんなに短いスクリプトで良かったなんて・・・。 勉強になりました!!

関連するQ&A