• 締切済み

html読み込みを制御

htmlのページを読み込む時にある部分だけ読み込みに制限を与えたいと思っています。こんな感じってサンプルをアップしてありますのでご覧になりアドバイスいただければと思います。 http://vivibibivivi.blog121.fc2.com/ ここの「開く」をクリックした時点で読み込みをさせたいのですが可能でしょうか?(インラインフレームは使いたくありません・あくまでも同じhtml上が希望です) 例えば画像等読み込みに時間のかかるモノは来場者の意志で読み込みをさせたいと言うかtopページは軽くしたいと言うか・・・でもページを複数に分けたくない理由があり・・・ すみません説明が下手で・・・ どなたかよろしくお願いします。

みんなの回答

  • OKbokuzyo
  • ベストアンサー率43% (130/296)
回答No.5

>>「開く」をクリックした時点で読み込みをさせたいのですが可能でしょうか?(インラインフレームは使いたくありません・あくまでも同じhtml上が希望です) 用件としてはAjaxが最もよくあてはまり、かつ一番簡単かと思います。 しかし、Ajaxでサーバとやり取りした際のレスポンスは XMLファイルが主流で、今後もweb系をやっていくなら DOM操作はぜひ覚えておく必要はあると思います。 レスポンスはXMLファイル以外にtextファイルを受け取ることもできます。 なので、DOM操作を知らずともcsvファイルとかにしておいて、 splitメソッド等で配列に格納して使うことも可能です。 ちなみに、別ドメインにあるファイルをjavascriptからリクエストすることはできないので、 これはサーバ側でなんらかの解決が必要となります。 (例えばサーバから別ドメインへリクエストしてファイルを取得するなど) まぁ質問者のようなブログのパターンで、 中身一部は別ドメインにあるっていうのもよくわかりませんが‥。

回答No.4

DOMがわからないとAjaxは使い物にならないわけですが、、、 <img src="spacer.gif" id="add"> <input type="button" value="クリックすると広告画像を表示" onclick="document.getElementById('add').src='http://www.example.com/add.gif';" > まぁ、画像だけならこれで十分かもです。 HTMLファイルを表示するのは他の人も仰るとおり、フレームを使うか、 socketを利用してHTMLファイル受信の中継を行うCGIアプリケーションを用意して、Ajaxするしか方法はないです。 (別サイトのRSSを表示したり、何とかAPI(Yahoo検索APIとか)に使われる方法です)

  • susie-t
  • ベストアンサー率86% (37/43)
回答No.3

残念ながら、JavaScriptで別ドメインのHTMLページをフレームを使用せずに表示するのはおそらく無理と思います。

misaki2020
質問者

お礼

ご回答ありがとうございます。 完全に壁に当たってしまいました。

misaki2020
質問者

補足

すみません追記です。 別ドメインのHTMLを読ませなくてもいいんです。 ただ、メインページを読み込んだ時に読み込ませない部分を作りたいんです。 サンプルblogのように開くをクリックして初めて読み込みをさせたいんですが・・・

回答No.2

HTMLとかテキストファイルを別のドメインから取ってくるのは無理ですけど、 (無理じゃないですけど、めんどくさい、HTML自身に加工が必要) 画像やプラグインだけならDOMで出来ますよ。 エレメントを作ってのsrcを指定するだけですから。 OKWaveの広告もほとんどそんな感じで表示してありますので、 JavaScriptを切れば、表示はかなり軽くなります。

misaki2020
質問者

お礼

画像だけでなくHTMLを読ませたいんですが可能なんでしょうか? 今DOM調べてるんですが・・・・(;^_^A アセアセ… 全然わかりません・・・ でも、ありがとうございます。

  • borazu
  • ベストアンサー率53% (8/15)
回答No.1

ajaxを使用して、非同期通信を考えてみてはどんなですか??

misaki2020
質問者

お礼

ご回答ありがとうございます。 ajaxをテストで普通のサーバーにアップすたら動作したんですが blogでは動いてくれませんでした(^^ゞ 悩んでます・・・・

misaki2020
質問者

補足

少し調べたんですがajaxは同一ドメインじゃないと動かないみたいですね? blogの場合呼び出したいhtmlは別ドメインになる為動作しないんだと思います。 また・・・悩まないと・・・ borazuさんありがとうございました。