Timeout関数でreloadしたいのです!教えてください!

now.jpgってファイルが自動更新されていきます。
そこで、下のような関数で再読み込みするんですが、見た目再読み込みしているのですが、ファイルが変わりません・・・。(ブラウザでreloadすると更新されます)

なので、Timeout関数でreloadができれば更新できるのではと思うのですが、どのオブジェクトなのかもわかりません・・・・。

助けてくださいーい。

function disp(){
t=setTimeout("disp()",3000);
top.main.document.open();
top.main.document.clear();
top.main.document.write("<HTML><BODY bgcolor = '#000000' text = '#FFFFFF'><IMG SRC='now.jpg'></BODY></HTML>");
top.main.document.close();
w=1;
}

A 回答 (3件)

リロードとはちょっと違う話しになってしまうけど、・・



  リロードがきちんとされている状態でも、画像が変わらない場合はキャッシュが採用
  されている場合があります。
  その場合は、src="画像ファイル?変数名=可変な値"をすればキャッシュ防止となります。
  ※「可変な値」としては YYYYMMDDHHMMSS とかがいいでしょう。
   この値はjavascriptの日付処理関数でつくれますよね。

一応関連事の参考までに。
がんばって下さいね。
    • good
    • 0

> Timeout関数でreloadができれば更新できるのではと思うのですが、どのオブジェクトなのかもわかりません・・・・。



window のプロパティである location オブジェクトが reload() メソッドを持っています。
ブラウザの reload と同じことをするのでいけるかも。

window.location.reload()

# 本当は img だけを reload できるのが良いんでしょうけど、わかりません (^^;
    • good
    • 0

ページのリロードでよければ、ヘッダに


<META HTTP-EQUIV="Refresh" CONTENT="10">
と書いてください。
CONTENTの値が秒です。
    • good
    • 0

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

このQ&Aと関連する良く見られている質問

Qif(document.all && navigator.appVersion.indexOf('Mac')!=-1)returnの意味

よろしくお願いします。
JavaScriptの勉強をしているのですが、参考にしている書籍に以下の構文が出てきまして、それの意味が分からなくて悩んでいます。

//MacIE4,5バグ 回避
if(document.all && navigator.appVersion.indexOf('Mac')!=-1)return

//以降に記してあるとおり、OSがMacintoshだった場合に何らかの処置を行うプログラムなのは分かるのですが・・。
navigator.appVersion.indexOf('Mac')!=-1の部分は、「navigator.appVersion.indexOf('Mac')が1ではなかったら、Macユーザーであるということ、で、falseが返されるのでしょうか?
しかし、そもそもnavigatorオブジェクトはブラウザの種類のことではないのか?と混乱してしまっています。
また、document.allがどのような役割を果たしているのかも分かりません。なぜここでdocument.allが出てくるのでしょうか?

どなたか分かる方いらっしゃいましたら、ご教授宜しくお願いします。

よろしくお願いします。
JavaScriptの勉強をしているのですが、参考にしている書籍に以下の構文が出てきまして、それの意味が分からなくて悩んでいます。

//MacIE4,5バグ 回避
if(document.all && navigator.appVersion.indexOf('Mac')!=-1)return

//以降に記してあるとおり、OSがMacintoshだった場合に何らかの処置を行うプログラムなのは分かるのですが・・。
navigator.appVersion.indexOf('Mac')!=-1の部分は、「navigator.appVersion.indexOf('Mac')が1ではなかったら、Macユーザーであるということ...続きを読む

Aベストアンサー

「document.all」は昔はIEにだけ存在するオブジェクトだったのでIEであるかどうかの判定に使われました。

今ではOperaやNetscape等でもIEへの互換の為に存在するのでIEかどうかの判定に使われる事は減ってきています。
IEであるかどうかの判定ではなく、純粋にdocument.allが在る(使える)かという判定にはもちろん使用されますが。

「navigator.appVersion」は確かにブラウザの種類なんですが、実際にはOS名も含まれていたりすのでOSの判定にも使われたりします。

また、 != -1 というのは indexOf関数の結果が 0~なら文字列が見つかったという意味(真偽ではなく、見つかった位置を返す関数)になるのでこういう比較式を使用しています。
(1でなかったらMacユーザという解釈はちょっと違います。)

参考URL:http://www.openspc2.org/JavaScript/ref/

Q$("body").height();と$("body").css("

$("body").height();と$("body").css("height");の違い?

jqueryにてbodyの高さを取得し、その数値に適当な値を足すなり引くなりして、他の要素の高さとして指定するということがやりたかったので

$(function() {
var bodyheight = $("body").css("height");
var mainheight = bodyheight-230;
$("#main").css("height",mainheight);
});

とした所、bodyの高さは取得できたのですが、その後が駄目だったので

$(function() {
var bodyheight = $("body").height();
var mainheight = bodyheight-230;
$("#main").height(mainheight);
});

と変更したところ、期待通りに動きました。

この2つの違いを、どなたかお分かりになる方にご教授いただきたいです。

Aベストアンサー

#1です。ちょっと考えが足らなかった。
css('height')だと読み出しも単位付だから設定の前に演算でNGでしたね。

というか、こういう演算目的のために常にピクセル単位で読み出したり設定できるjQuery.heightやjQuery.widthが用意されているのでしょうね。

Qタグを書き換えたい

やりたいことは、
<body>タグ以降で、
window.load = test();
のスクリプトを書き、

test()の中で、<body>タグの中身を書き変えたいです。

<body> ⇒ <body onmouseover="test2()">としたいです。

タグに要素を追加する関数や、ごっそり入れ替えてしまう関数などあったら教えてください。

最初から<body>タグに書ければいいのですが、どうしても<body>タグ以降で対応するしか無い状況です。。。

Aベストアンサー

なんかまわりくどいですね・・・
以下でどうでしょうか?

<body>
test
<script>
window.onload = test;
function test(){
document.getElementsByTagName("body")[0].onmouseover=test2;
}
function test2(){
document.getElementsByTagName("body")[0].style.backgroundColor="yellow";
}
</script>
</body>

Q関数を呼び出すHTMLタグについて

ほぼ独学でJavaScriptを学んでいるので、一般的なコード(HTML含め)の書き方が分かりません。
JavaScriptでは、ボタンや画像をクリックすると動作する、
というものが多いですが、そうではなくて、
(それはonclick等で関数を呼び出せば良いことは分かります)
時計のように、アクセスした瞬間から実行されるプログラムを複数書きたい時は、
どのようにするのが妥当でしょうか。
<body onload="hoge()">では、関数hoge()しか実行されないことになりますよね。
そうではなくて、hoge()以外にもいくつかの関数を実行したい時はどうするのが一般的ですか?
ここでC言語のように、hoge()をmain関数(int main(void){})のような扱い方にすると、
hoge()関数内で呼び出されている関数も呼び出されることになりますが、そのような書き方で良いですか?
アクセスの効率の良さから考えて、他に良いやり方はあるでしょうか。

・・・前に困ったので<body>タグを2つ付けて2つの関数をonloadアトリビュートで呼び出すという、
奇々怪々なことをやってみて、それでIE7,FireFox3で動いていたので驚いたんですが、
そんなやり方はさすがに御法度ですよね(笑)。

答えにくい質問だと思いますが、アドバイスお願いします。

ほぼ独学でJavaScriptを学んでいるので、一般的なコード(HTML含め)の書き方が分かりません。
JavaScriptでは、ボタンや画像をクリックすると動作する、
というものが多いですが、そうではなくて、
(それはonclick等で関数を呼び出せば良いことは分かります)
時計のように、アクセスした瞬間から実行されるプログラムを複数書きたい時は、
どのようにするのが妥当でしょうか。
<body onload="hoge()">では、関数hoge()しか実行されないことになりますよね。
そうではなくて、hoge()以外にもいくつか...続きを読む

Aベストアンサー

""の中がスクリプトなので、<body>タグを2個書かないでも、実行する関数の数が少ないのなら
 <body onload="A(); B();"> みたいなのでもOK。
あるいは window.onload を用いれば、<body>タグ内に書かないでもすみます。
(二重定義になると、後方優先になりますが…ANo2参照)

<html>
<head>
<script type="text/javascript">
window.onload = function(){
  B();
  A();
}
function A(){ alert("A"); }
function B(){ alert("B"); }
</script>
</head>
<body>
<!-- <body onload="A(); B();"> 注)コメント行 -->
</body>
</html>


人気Q&Aランキング

おすすめ情報