以下のソースを参照ください。

function openPage() {
newwin = window.open(”index_html”,”preview”,”toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes”);
newwin.moveTo(0,0);
newwin.resizeTo(screen.availWidth,screen.availHeight);
newwin.location.reload(true);
newwin.focus();
}
Win IE6ではばっちり動作するのですが、FirefoxではWin、Mac版ともに動作しません。ウィンドウが開き、最大化までするのですが、<html>の中身が空っぽになってしまいます。
単純に【newwin.location.reload(true);】を削除するとFirefoxでもうまく動きます。
Firefoxでもキャッシュを見ずに表示させる方法はありませんでしょうか?

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/03/09 17:50:07
  • 終了:--

回答(3件)

id:katzumi No.1

katzumi回答回数24ベストアンサー獲得回数02005/03/09 18:08:30

ポイント24pt

http://www.tohoho-web.com/js/index.htm

とほほのJavaScriptリファレンス

URLはダミーです。

キャッシュを無効化する為に表示するページへのアクセスをユニークなものにします。

例ではwindow.openでndex_htmlを表示させようとしていますが、このindex.htmlにGETパラメータを付加します。

例)

”index.html?time=” + escape(new Date())

timeのパラメータが表示する毎に変化するのがミソです。

id:Kurobuchi

ありがとうございます。

後ほどチャレンジしたいと思います。

2005/03/09 18:16:38
id:english No.2

english回答回数304ベストアンサー獲得回数02005/03/09 18:12:23

ポイント23pt

function openPage() {

rand = Math.floor(Math.random()*1000000);

newwin = window.open(”index.html?” + rand,”preview”,”toolbar=yes,location=yes,directories=yes,status=yes,menubar=yes,scrollbars=yes,resizable=yes”);

newwin.moveTo(0,0);

newwin.resizeTo(screen.availWidth,screen.availHeight);

newwin.focus();

}

のように、index.htmlのお知りにパラメータをつければURLが異なるものとブラウザは認識し、キャッシュからは読み込みません。Javascriptによるlocation.reload()もいりません。

また、本来、キャッシュ制御はメタタグによる設定や、リスポンス・ヘッダーによる制御によって行えばいいのではないでしょうか? ただのHTMLファイルの場合、リスポンス・ヘッダーによる制御は難しいでしょうが、メタタグは使えるのではないでしょうか?

http://www.atmarkit.co.jp/fjava/rensai2/webopt12/webopt12.html

@IT:事例に学ぶWebシステム開発のワンポイント(12)

id:Kurobuchi

englishさんありがとうございます。ばっちりです!

Javascript初心者なもので、感激しています!

ちなみに案件の都合上、HTMLファイル自体にメタタグを埋め込むのは回避したいなと思ってまして、JSファイルで制御したかった次第です。

この場を借りまして、katzumiさんありがとうございます。

時間をゲットする方法もばっちりでした。ためになるミソありがとうございました。

2005/03/09 18:36:50
id:kibitaki No.3

kibitaki回答回数53ベストアンサー獲得回数42005/03/09 18:21:32

ポイント23pt

http://www.htmq.com/html/meta.shtml

<META>−HTMLタグリファレンス

既に良い答えが出ていますので、それ以外で・・・。

リンク先のHTMLもご自分で作られているようであれば、

リンク先のHTMLで指定をかけてもよいと思います。

<META HTTP-EQUIV=”Cache-Control” CONTENT=”no-cache”>

<META HTTP-EQUIV=”Pragma” CONTENT=”no-cache”>

id:Kurobuchi

kibitakiさんありがとうございました。

HTMLファイル側で制御する機会まで、この技をとっておきたいと思います。

未熟な私にみなさんありがとうございました!

2005/03/09 18:37:58

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません