• 締切済み

Javascriptを使ってTOPページを毎日自動で変更したいのですが

Javascriptを使って毎日自動的にTOPページを変更したいと思っています。 具体的にはindex001.htm~index031.htmというように1か月分のTOPページを作成しておいて、毎日0時になると自動的に次のindex***.htmのページに切り替わるようにしたいのです。 (見ている人がいちいちページの更新をしなくても0時になればリアルタイムにページが切り替わることが必須条件です) いくつかjavascriptを試して見ましたが更新をすればページが切り替わるものはありましたがリアルタイムで毎日自動的に切り替わるものはありませんでした。 どなたかぜひ教えて頂けます様お願い致します。

みんなの回答

noname#84373
noname#84373
回答No.5

ごめん!式を間違えた! Math.floor((d2+d1)/d1)*d1-d2); に変更してください!

すると、全ての回答が全文表示されます。
noname#84373
noname#84373
回答No.4

index.htmlは以下の部分だけになります 日付を基準にそのページに飛ばします <html><head><script>location.href=(new Date()).getDate()+'.html';</script></head> <body></body></html> -------------------- 1~31.htmlのファイルの<head>の中に以下の部分を書きます <script> d1=86400000; d2=(new Date()).getTime()+9*60*60*1000; setTimeout("location.href='index.html'",Math.floor((d2+d1)/d1)*d1); </script> -------------------- なんでも聞くのではなく試してみては?

masa2008
質問者

お礼

何度も回答頂きましてありがとうございます。 教えて頂いた様に記載してサーバーにUPしましたが、どうも自動的にページが変わりません。 *最初index.htmlを表示しようとすると日付に対応したページが表示される。 ここまではいいのですが、その後0時になった時点で次のページを表示したいのですが、ページは変わらず。 上記のような状態です。 やはり自動的にページを更新するのは無理なのでしょうか?

すると、全ての回答が全文表示されます。
noname#84373
noname#84373
回答No.3

訂正! setTimeout("window.location.reload()",Math.floor((d2+d1)/d1)*d1);を setTimeout("location.href='index.html'",Math.floor((d2+d1)/d1)*d1);に(トップページね)

masa2008
質問者

お礼

お返事いただきましてありがとうございます。 index.htmに ---------------------------------------------------------------- <script>location.href=(new Date()).getDate()+'.html';</script> <script> d1=86400000; d2=(new Date()).getTime()+9*60*60*1000; setTimeout("location.href='index.html'",Math.floor((d2+d1)/d1)*d1); </script> ---------------------------------------------------------------- と入力しましたが、 これはすべてのページ(index002.htm~index031.htmまで)に入力するのでしょうか? それともindex.htmのみに入力しておけば自動的にに表示が変わるのでしょうか? お手数をお掛け致しますがよろしくお願い致します。

すると、全ての回答が全文表示されます。
noname#84373
noname#84373
回答No.2

最初のページ <html><head><script>location.href=(new Date()).getDate()+'.html';</script></head> <body></body></html> ここの日にちのページに <html><head> <script> d1=86400000; d2=(new Date()).getTime()+9*60*60*1000; setTimeout("window.location.reload()",Math.floor((d2+d1)/d1)*d1); </script> </head> <body> あとは適当に・・・ </body> </html> 動作は確認してません! ところでこれは、何日も触らずページを表示しておくの?

すると、全ての回答が全文表示されます。
回答No.1

IFRAMEとかを使ってみてはいかがでしょうか。 ・100%サイズのIFRAMEを<BODY>のすぐ下に作る。 ・javascriptで日付を取得して、IFRAMEにHTMLをロードさせる ・必要ならIFRAMEがonloadした時点でIFRAMEのサイズをリサイズする こんな風にすれば出来そうな気がします。 可能ならサーバーサイドでやってしまった方が良いと思います。

masa2008
質問者

お礼

さっそくお返事いただきましてありがとうございます。 ただ私はあまり詳しくないので出来ましたらもう少し具体的にタグ等をお教え頂けると助かります。 あとフレームを使用した場合SEO的に不利になると聞いたことがあるのですがその辺りはいかがでしょうか? お手数をお掛け致しますがよろしくお願い致します。

すると、全ての回答が全文表示されます。

関連するQ&A