• ベストアンサー

webページの一部をリロード

あるhtmlページに、Javascriptを設置しているとして、 そのJavascriptの部分のみ、 一定の秒数がたつと自動でリロードされるようにしたいです。 iframeを使わずにできますか? Ajaxとかいうものでできそうですが、 よく解らないし、ブラウザによって動作したりしなかったりするようなので、 どうかな、と思っています。

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

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4903/10364)
回答No.3

No1です。 できますよ。簡単です。 <div id="foo">ここに表示するとする</div> function update(){ var xhr = new XMLHttpRequest(); xhr.open("GET", "/foo.php"); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { document.getElementById("foo").innerHTML = xhr.responseText; xhr = null; } } xhr.send(null); } //簡略化のために、IE7以降とFirefox,Chrome,Safari等のみ対応

-web-
質問者

お礼

有難うございます。 実はAjaxは今回いろいろ検索していて初めて知ったもので、 教えて頂いたタグをどこにどうすればいいのか右も左もわからないので、 少し勉強してから設置してみます(^^;) あと、できれば、できるだけ多くのプラウザに対応できるものを教えていただけるとうれしいです!

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

その他の回答 (3)

  • notnot
  • ベストアンサー率47% (4903/10364)
回答No.4

>あと、できれば、できるだけ多くのプラウザに対応できるものを教えていただけるとうれしいです! IE6このスクリプトだけだとIE6に対応するのも可能です。「XMLHttpRequest IE6」あたりで検索。 ただ、ページ全体をIE6にも対応しようとすると深い泥沼に入るらしいですので、止めた方が良いのでは?

-web-
質問者

お礼

ありがとうございます。 ちょっと勉強して設置してみます。

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

>Javascriptを設置しているとして、 >Javascriptの部分 言葉があいまいなせいで分かりにくいですが、HTMLの一部をJavascriptで出力していて、そこだけを定期的に更新? それならsetInterval関数を使えば実現できるかと。 「javascript setinterval」で検索して最初にヒットするサイトの説明が簡潔で分かりやすいです。 ちなみに「リロード」はおっしゃる通りインラインフレームを使わないと無理。

-web-
質問者

お礼

有難うございます。 例えば、こういった、本のベストセラーを表示するブログパーツ http://amaziiii.syoh.jp/bsp/bsp_makeparts.php みたいなものを設置して、 その部分だけ、1分ごとにリロード(?)して別の結果を表示させる、 というようなことがしたいのです。 インラインフレームを使いたくないのは、 ページの一番上に自動的に広告が入る無料サーバを使っているからです。 そこで、B.htmlを <a name="□□"></a>と<meta http-equiv="Refresh" content="0;URL=○○.html#□□>で広告の下から表示させるようにして、 リロードは <SCRIPT LANGUAGE="JavaScript"> <!-- setTimeout("location.reload()",1000*△); //--> で行い、 B.htmlをA.htmiのページの真ん中あたりにインラインフレームで表示するようにしてみました。 すると△秒後にうまくリロードしたものの、 A.htmiがインラインフレームのところから表示されてしまったんです。 (つまりスクロールしないとインラインフレームより上の部分が表示されない) △秒経ってリロードされるたび、インラインフレームのところから表示されてしまいす。 A.htmiが常に一番上から表示されるようにできるなら、 インラインフレームでも構わないのですが…

すると、全ての回答が全文表示されます。
  • notnot
  • ベストアンサー率47% (4903/10364)
回答No.1

scriptタグの中を書き換えたいと言うことですか?タグの単位なら可能です。 Ajaxの技術を使うことになります。 ケイタイブラウザは知りませんが、PCやスマートフォン用ブラウザなら大丈夫。もちろんJavaScriptを禁止設定にしているとそもそもだめですが。 <script id="A">~~~</script> <script id="B">~~~</script> AのScriptタグ中のスクリプトで、一定時間ごとにBのScriptタグを削除して、新規でBのScriptタグを作りサイトから取り込んだデータをタグの中身としてAの直後に追加する というような処理イメージ。

-web-
質問者

お礼

有難うございます。 具体的にやりたい事は、ANo.2さんのお礼の所に補足しました。 Ajaxでできますか? 簡単にできる方法だとありがたいのですが。

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

関連するQ&A