
javascriptに関する質問です。(覚えたての初心者です)
ただいまホームページで、1分毎にiframe内のページを自動リロードさせているのですが、
これを、アクセスしたユーザーのローカルPC時間の0秒に合わせて自動リロード、に変更
したいと考えています。
具体的に申しますと、
自分で育てている野菜を紹介するホームページなのですが、今まではユーザーが訪問した
瞬間を「0秒目」と考えて、そこから60秒経ったら、大根→はくさい→野沢菜→きゅうり…と
iframe内のページを変更しておりました。
これを、「ユーザーのPC時計の0秒目に合わせてページを更新」させたいのです。
(理由は、「毎分でいろんな野菜をご紹介中!」とキャッチフレーズを付けているので
中途半端な時間よりも、ユーザーの時計に合わせたタイミングで写真を切り替えたいと
考えている為です)
現在、下記のようなjavascriptで表現しています。
<HTML>
<HEAD>
<TITLE>大根のご紹介!</TITLE>
<SCRIPT TYPE="text/javascript">
<!--
var jikan = "60000";
function ReloadAddr(){
window.location.reload();
}
setTimeout(ReloadAddr, jikan);
//-->
</SCRIPT>
</HEAD>
<BODY>
//大根の写真や紹介文など
</BODY>
</HTML>
これを、どのように変更すれば解決出来ますでしょうか?
インターネットで様々なサンプル集を見て回ったのですが、上記のような
「一定時間でリロード」という方法は載っているのですが、
「ユーザーのローカル時計が0秒になったらリロード」というサンプルを
見つける事が出来ませんでした…
もし宜しければ、サンプルが載っているサイト様をご紹介頂くだけでも構いません。
それでは何卒宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
毎分0秒に合わせる為に1秒毎にチェックを入れると
重くなりますので、開いた際に現在秒を取って
それが60秒になる際にリロードをする方がいいのでは
ないでしょうか。
function ReloadAddr(){
window.location.reload();
}
now = new Date();
sec = now.getSeconds();
var inter = 60 - sec;
setTimeout(ReloadAddr, inter*1000);
未テスト&#1さんの処理を流用
また、iframe内ページの表示を制御する場合は
親からiframe内ページに対して制御を行う方がいいように思います。
親から制御する場合は、同様に最初に現在秒を取って
60秒になる時にiframe内をリロードし、あとは60秒おきに
リロードすればほぼ0秒にリロードさせる事は可能です。
function ReloadiAddr(){
document.iframe名.location.reload();
}
now = new Date();
sec = now.getSeconds();
var inter = 60 - sec;
setTimeout( function(){
ReloadiAddr();
setInterval(ReloadiAddr, 60000);
}, inter*1000);
こんな感じでしょうか。
iframeの呼び出し方どうだったろうか・・・
document.iframe名.****でいけたはず
同じく未テスト
まぁ、イメージではこんな感じです。
ご回答ありがとうございます。
当初の希望通り、0秒目のリロードが出来るようになりました!
ただ、教えて頂いた「親ページからiframeをリロードする」点は
書いて頂いたソースのコピペでは上手くいきませんでした…
iframeのタグは
<iframe id="yasai" name="yasai" src="yasai.php"></frame>
としているので、書いて頂いた
>document.iframe名.location.reload();
の部分を、
document.yasai.location.reload();
もしくは、
document."yasai".location.reload();
かなぁと思い挑戦してみるも、どちらも自動リロードは出来ませんでした。
No.1
- 回答日時:
単に思いつきで書きますが。
・時間間隔を1分→1秒
・実動関数内で秒を取得(getSeconds())
・ifで秒が0かチェックし、0ならばwindow.location.reload();を呼び出す。
スクリプトが頻繁に動く事になりますが、秒を確認するのであれば、毎秒チェックする形にしないと、取れないかと。
現在の内容ではチェックできる最小の時間単位は分なので。
var jikan = "1000";
var ldate;
var sec;
function ReloadAddr(){
ldate= new Date(); ←現日時の取得
sec = ldate.getSeconds(); ←秒の取得
if (sec == 0){ ←0秒チェック
window.location.reload();
}
}
setTimeout(ReloadAddr, jikan);
※文法チェック、テスト等は全くしてません。
お礼欄をお借りします。
このたび、全て解決の運びとなりましたのでご報告いたします。
まず、0秒目のリロードは解決し、その後、No2さんのお教え頂いた
「親ページでのリロード」は、getElementByIdを利用する事で
実行出来ました。
このたびはありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- JavaScript HTMLでJavaScriptを使ってパスワードの強化判定のプログラムを作成しています。 一通り作っ 2 2022/10/19 01:41
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- JavaScript javascriptで変数を組み込みたい 2 2023/01/13 09:52
- JavaScript javascriptのちょっとした動作不良(原因は突き止めたのですが) 1 2023/06/15 19:58
- JavaScript 画像の表示位置 3 2022/12/23 08:25
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ホームページなどに詳しい方教...
-
Excel で日記を書いています、...
-
教えて!goo でいただいた回答を...
-
プログラミングの流れ図の問題...
-
Adobe FLASH に代わるソフトは...
-
アニメ公式サイト風なWebページ...
-
ホームページビルダー11で作...
-
ホームページビルダー22でリン...
-
ホームページの画面文字を濃く...
-
【ホームページ作製】HPのWebペ...
-
無料のホームページを作成でき...
-
古いウェブ作成ソフト使ってる...
-
マウスオーバーすると色が変わ...
-
hpの画像の公開
-
ホームページ作成に伴い、元デ...
-
会社のホームページをご自身で...
-
クリック時に生成したものを削...
-
ホームページ
-
ホームページビルダーで作った...
-
ホームぺージ作り
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
教えて!goo でいただいた回答を...
-
ホームページの画面文字を濃く...
-
【ホームページ作製】HPのWebペ...
-
無料のホームページを作成でき...
-
FFFTPでサーバに新規フォルダが...
-
ホームページビルダーを複数の...
-
友達にドッキリをしたくて、ホ...
-
ホームページビルダー22でリン...
-
XREA使用で作成したHTMLファイ...
-
ホームページを作りたいのです...
-
ビルドとリビルドの違いを教え...
-
メールフォームで送信すると「...
-
ホームページビルダー19文字化け
-
Adobe FLASH に代わるソフトは...
-
新規サイトをGoogle検索に出る...
-
メールフォーム設置の文字化け...
-
CSSと無料掲示板を組み込んだサ...
-
ホームページビルダー11で作...
-
クロムOSでhtmlを作成したい
-
大学のサークルOB会のホーム...
おすすめ情報