HTMLの表の中に他のHTMLまたはTXTファイルからの一部を表示させる方法はりますか。

たとえば、b.html のある部分に12345という数字が入っていて、このb.htmlを開かずにa.htmlの表の中にこの12345という数字を抜き出して表示する方法です。

回答の条件
  • 1人2回まで
  • 登録:2007/03/31 00:10:03
  • 終了:2007/04/07 00:12:05

回答(4件)

id:zaji999 No.1

zaji回答回数73ベストアンサー獲得回数12007/03/31 00:26:00

ポイント23pt

インラインフレームでしょうか?

id:nakane2007

あ、そうです。そうでした。

調べてみます。

2007/03/31 00:32:46
id:llusall No.2

llusall回答回数505ベストアンサー獲得回数612007/03/31 00:33:08

ポイント23pt

Ajaxはいかがでしょうか?


Ajaxを勉強しようより

■サーバー上のHTMLファイルを読み込みページ上に表示する

     サンプル

■サーバー上のテキストファイルを読み込みページ上に表示する

など。


上記サンプルはボタン押下時に表示させていますが、初期表示時に実現したいのであれば、

body タグの onload イベントで実装できると思います。


また、b.html のある部分の12345という数字のみを表示させる場合は、

Ajaxにより取得した内容から、その部分だけを正規表現等で抜き出すなどして、

表示させる形になるかと思います。

以上、参考になりますでしょうか?

id:nakane2007

大変面白く、勉強させてください。

ただ、今回は、携帯からもその数字が見られるようにしたいのですが、iframe でも携帯からだと見えないようですが、対応していない、このタグはということなのでしょうか?

となると他の方法を検討しなくてはいけないでしょうか?

2007/03/31 00:54:39
id:pmakino No.3

まきのっぴ回答回数355ベストアンサー獲得回数282007/03/31 02:02:07

ポイント22pt

以下の4種類の方法が考えられます。

■1 SSI を使う

<!--#include virtual="b.html"-->

■2 インラインフレームを使う

<iframe src="b.html" width="60" height="16"></iframe>

■3 JavaScript (単純な document.write) を使う

<script type="text/javascript" src="b.js"></script>

ただし、この場合は b.html ではなく、b.js を作成することになります。

b.js の中身は

document.write("12345");

のように記載しておくことになります。

■4 JavaScript (Ajax) を使う

(prototype.js を使った場合)

<script type="text/javascript" src="http://www.prototypejs.org/assets/2007/1/18/prototype.js"></script>

(中略)

<span id="b"></span>

<script type="text/javascript"> new Ajax.Updater("b", "b.html") </script>

それぞれにメリット・デメリットがあります。

SSI は、Web サーバの機能によって実現されるものなので、SSI が使用可能なように Web サーバの設定を変更する必要があります。Web サーバにアップロードするまで結果を確認できないという管理上の不便さもあります。

しかし、サーバ側で挿入されるため、クライアントが何であろうと挿入された結果を受信することができ、アクセシビリティ、SEO 等の面で最良です。

IFRAME は、もっとも手軽に利用できますが、あくまでフレームの一種なので、アクセシビリティ上あまり好ましくありません。非対応のブラウザも存在しますし、フレームのサイズをあらかじめ決めておかなければならない点も不自由です。

JavaScript (単純な document.write) も IFRAME と同様です。非対応の環境が存在しますし、SEO の面ではかなり悪いです。

また、挿入したいテキストを JavaScript の構文に書き直さなければならない手間もあります。

Ajax は、挿入したいテキストを JavaScript の構文で書き直さなければならない手間を省けますが、利用可能なブラウザの範囲は最も狭くなり、SEO 的には最悪です。

特に携帯での利用を考えられているなら、選択肢は SSI しかないのではないでしょうか。

id:nakane2007

できました!!

ssiで。

ありがとうございました!!!!!

2007/03/31 02:54:12
id:cockscomb No.4

cockscomb回答回数23ベストアンサー獲得回数52007/03/31 02:28:49

ポイント22pt

objectタグなど使ってみてはどうでしょう。

将来的にiframeの代わりとなっていくはず(W3Cが言うには)のタグです。

<object data="ここに参照するHTMLファイルのURI" type="text/html" ></object>

このように書くことでHTMLファイルを読み込めるはずです。

また、開始タグと終了タグの間に代わりとなる要素を入れ子にすることで、object要素から読み込めなかったブラウザは代わりの要素を読み込むことが出来ます。

携帯電話がXHTML BasicくらいのDTDに対応していればこれで良いはずです。

ただ、携帯電話は標準的な技術に対応していないことが多いと思います。もし環境があるならばSSI(サーバサイドインクルード)など、サーバ側で処理してやる方がより確実だと思います。

id:nakane2007

上記のようにしたのですが、PCからでも表示できません。なにか規制があるんでしょうか?

2007/03/31 02:45:48

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

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

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

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

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