• 締切済み

ページAのhtmlソースの一部をページBのトップに連動させたい。

検索したのですが、うまく当てはまりそうなものが見つからなかったので、質問させてください。 ページAのhtmlソースの一部(tableタグで囲まれた10行程度のソースです)をページBのトップに表示・連動させたいのです。 iframeで引っ張ってこようと思ったのですが、それでは一部だけ表示させることができず、困っています。 なにか、プログラムなど使えば出来るのでしょうか。 素人で説明が分かりづらいと思いますが、助けていただければと思います。 よろしくお願いいたします。

noname#74807
noname#74807
  • Perl
  • 回答数7
  • ありがとう数9

みんなの回答

  • tomy06
  • ベストアンサー率25% (58/224)
回答No.7

javascriptですが 私が以前、質問して回答いただいたものです。 sprinkle.jsを使えば良いと思います

参考URL:
http://oshiete1.goo.ne.jp/qa3977331.html
回答No.6
  • nerumako
  • ベストアンサー率84% (11/13)
回答No.5

#1です。 抜き出すスクリプトをperlで用意して、ページBにそのperlをJavaScriptで呼び出して表示させるのが簡単かと思います。 <script type="text/javascript" src="http://hogehoge.com/nukidasi.cgi"> これならファイルの保存はいりませんし 常に最新のページAの欲しい箇所が抜き出せるかと思います。 最近JavaScriptが人気なのでちょっとした動的なコンテンツに関してはこちらの質問板と平行してJavaScript質問板で質問してもスマートな意見が帰ってくるかもしれませんね。

noname#74807
質問者

お礼

丁寧にありがとうございます。説明ベタで申し訳ないです; ちょっと土日で格闘してみようと思っております。 「JavaScript質問板へ~」というアドバイスも感謝です。 また、不明点が出た場合はお助けいただければ嬉しいですが、なんとか自力でがんばってみようと思います。ありがとうございました。

  • pick52
  • ベストアンサー率35% (166/466)
回答No.4

> やっぱりそうですよね…。最終的には「おすすめを別ページにして > それを更新させる」という方法しかないと思っているのですが、 > 結局担当の方の更新方法を変えるのではなくあくまで今の形態のまま > タグの挿入程度でなんとかならないかと言われて困っているのです; なんか、仰っている意味が分からないのですがHTMLのままAを更新すると Bも自動で更新されるようにしたいということなのでしょうか。 HTMLはただのプレーンテキストなので動的な処理はできません。 共通部分だけ別のファイルとしておいてそれをCGIなどを使用して 読み込み出力させるしかないです。 その部分だけ分割するわけでその部分は今までとまったく同じ方法で 更新できますし今までより容量が減る分、逆に更新も簡単になると 思いますよ。 最終的にはWikiを導入してそのWikiのテンプレート機能とかを使用する という手もありますけど。 (MediaWikiならそういうことができます) 少なくてもAのファイルを更新したらBのファイルも自動で更新される なんてことはできません。

noname#74807
質問者

お礼

回答ありがとうございます。 ちょっと土日で格闘してみようと思っております。 ありがとうございました。

  • pick52
  • ベストアンサー率35% (166/466)
回答No.3

> htmlでないとだめと言うか、担当の方がhtmlしか分からない方で、 > その方がページAの「おすすめ」を更新した場合、ページBのTOPにも > それが反映されるようにしたい…という感じなのです; その部分だけ、別ファイルにしてopen関数で読み込み、出力させれば いいだけでは。 sub table { if(open(FILE, 'ファイル名')) { print <FILE>; close FILE; } return; } 問題なのはサーバ側がCGIなどの実行を許可しているかの方ですが。 CGIたって大抵はPerlCGIなのでHTML程度が分かるならそんなに 難しくないと思いますけど。サンプルもネット上調べればたくさん ありますし。

noname#74807
質問者

お礼

回答ありがとうございます。 やっぱりそうですよね…。最終的には「おすすめを別ページにして それを更新させる」という方法しかないと思っているのですが、 結局担当の方の更新方法を変えるのではなくあくまで今の形態のまま タグの挿入程度でなんとかならないかと言われて困っているのです;

  • pick52
  • ベストアンサー率35% (166/466)
回答No.2

その表示させたい部分というのはHTMLファイルでないといけないの でしょうか。 全部CGIでいいなら use strict; &main(); # メイン sub main { my $cgi = &getreq(); print "Content-type: text/html; charset=shift_jis\n\n"; print <<'HTML'; <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html lang="ja"> <head> <meta http-equiv="content-type" content="text/html; charset=shift_jis"> <title>テスト</title> </head> <body> HTML if($cgi->{'mode'} eq 'a') { print "ページ A<br>"; } elsif($cgi->{'mode'} eq 'b') { print "ページ B<br>"; } else { print "その他のページ<br>\n"; } &table(); print "</body>\n</html>\n"; exit; } sub table { print "<table>\n"; print <<'TABLE' x 10; <tr> <td>テーブル</td> </tr> TABLE print "</table>\n"; } # CGI リクエストの取得 sub getreq { my $cgi = {}; my $query = ''; $query = $ENV{'QUERY_STRING'}; my @args = split(/&/, $query); foreach my $i (@args) { my ($name, $val) = split(/=/, $i); $val =~ tr/+/ /; $val =~ s/%([0-9a-f]{2})/pack('C', hex($1))/eig; $name =~ tr/+/ /; $name =~ s/%([0-9a-f]{2})/pack('C', hex($1))/eig; $cgi->{$name} = $val; } delete($cgi->{''}); return $cgi; } こんな感じで分岐できますけど。

noname#74807
質問者

お礼

回答ありがとうございます。 htmlでないとだめと言うか、担当の方がhtmlしか分からない方で、その方がページAの「おすすめ」を更新した場合、ページBのTOPにもそれが反映されるようにしたい…という感じなのです; せっかく、書いていただいたのに申し訳ないです;;;

  • nerumako
  • ベストアンサー率84% (11/13)
回答No.1

perl質問板なのでperlでの回答になります。 やり方は様々ですがiframeなどで引っ張って来れる例を出してみます。 同じサーバーであればopenでAhtmlを開く事ができます。 my$ahtml; open(INCLUDE,"A.html"); $ahtml=<INCLUDE>; #正規表現でtableタグ部分のみを取り出す例 $ahtml=~s/.*(<table>.+<\/table>).*/$1/is; close(INCLUDE); あとは$ahtmlを適当な名前で保存すればiframeで表示できると思います。 別のサーバーにAのhtmlがある場合はLWP::UserAgentモジュールでhtmlソースを取得し、上記と同じく正規表現で切り出し、ファイル保存します。※ただしLWP::UserAgentモジュールが使えるサーバーに限ります。 もしSSIが使える環境でしたらiframeでなく、SSIでincludeすると楽です。 以上、結論では可能という事になります。

noname#74807
質問者

お礼

おおお!ありがとうございます! なるほど、意外と短いソースで出来るものなのですね。すごい。 えぇと、ひとつ気になったのですが、いただいた回答の場合だと、$ahtmlをいちいち保存する形になるのでしょうか? No.2さんの回答にも書かせていただいたのですが「担当の方がhtmlしか分からない方で、その方がページAの(テーブルタグで囲まれた)「おすすめ」(の部分)を更新した場合、ページBのTOPにもそれが反映されるようにしたい…」という感じなのです; なので、<div id=osusume>で囲まれた部分を抜き出す。というイメージでも良いと思うのです。 perl質問板にしたのは私が「ここかなぁ」と思っただけですので、cgiなどでも大丈夫です; 分かりづらくてすみません。

関連するQ&A

  • Webのトップページに、cgiで表示される内容の一部(最初から20行程

    Webのトップページに、cgiで表示される内容の一部(最初から20行程度)を切り取った形で表示したいと思います。 毎日更新する日記の一部を切り取ってトップページに置くことで、トップページのアクセス数を増やしたいと考えております。 なお、綺麗に一日分を切り取れる必要はなく、例えば最初から20行程度が表示できれば十分です。 制約条件は以下の通りです。 (1)cgiプログラム自体に変更を加えないこと。cgiはプロバイダが提供しているものを使っているので、変更できないから。 (2)トップページのhtml(index.html)の記述変更だけで目的を達成できること。理由は、上記(1)に同じ。 上記目的を実現できる方法、ヒント、または適当なポインタをご教授頂きたく、よろしくお願い致します。

  • トップページがヤフーの検索に引っかからなくなりました

    以前ヤフーで「スーパーコンパニオン」という言葉で検索すると1ページ目に出てきていたのですが、タイトルやH1タグの中にキーワードを増やし、相互リンクページに登録してバナーを貼ったところ検索しても出てこなくなりました(現在は減らしています)。 site:で調べるとインデックスはされています。 グーグルでは出てきます。 女手で素人ながらなんとか頑張ってみたのですが、これ以上はよく分かりません。 再度トップページがヤフーで上位表示されるにはどうしたらいいでしょうか。 大変お手数ですが、アドバイス頂けると助かります。よろしくお願い致します。

    • ベストアンサー
    • CSS
  • サイト名で検索しても、トップページだけが出てこないのはなぜ?

    Webサイトを作り、しばらく時間をおいてからサイト名で検索してみました。 検索結果にはいくつか自作のページが表示されるのですが、なぜかトップページだけが全く出てきません。 特にタグに不備があるとは思えません。 また、トップページから各ページへ向かうような構造にしてあります。 何が原因と考えられるでしょうか? なお、検索エンジンがyahooの時にこのような現象が起こります。 (googleでは起こりません)

    • ベストアンサー
    • HTML
  • インラインフレームについての質問です。

    皆様、よろしくお願いします。 <iframe>で、他のサイト(自分の副サイトです)のページを表示させています。 現在、そのページの最初の行から読み込まれてしまっているのですが、 できれば、上から数行をカットして表示したいのです。下は、今のところ問題ありません。 (例えば、20行目ぐらいから表示…とか) 余分な部分を含んでいるので。 本来なら、nameタグをつければよいと思うのですが、 その副サイトのページは、ちょっと特殊で、ソース変更ができないので困っています。 <iframe>を埋め込む方のページで何かタグを入れて、 表示するページの開始行を指定することは可能でしょうか? ご存知の方がいらっしゃいましたら、教えてください。

  • ページ移動してもURLをtopのままにするタグ

    企業のHP等でたまにあるのですが、 「サイト内の別のページへ移動しても、アドレスバーに表示されるURLは常にtopのまま」 このタグを教えてください。 別のページをブックマークしても、必ずtopに繋がるようにできていました。 ソースを見てもいまいちわかりません。 どこに打てばいいのかも教えてください。

    • ベストアンサー
    • HTML
  • TOPページに自動的に飛ばす方法

    質問させていただきます。 私の勤める会社のホームページの製作をまかされ、素人ながらなんとか3分割フレームのホームページが出来ました。 そして10個所くらいの検索エンジンにも登録し一見落着と安堵していたのですが、よく見てみると検索エンジンによってはTOPページ(indexとしました)だけが登録されている検索エンジンと、その他のページも全て個別に登録されている検索エンジンがあり、問題は後者にあります。 登録されているTOP以外のURLをクリックすると当然フレームでは表示されずそのページが単体で表示されてしまいますよね? そうなるとメニューも表示されないのでそのページからは他のページを閲覧できないのでせっかく登録されているものの意味がなくなってしまいます。 前置きが長くなって申し訳ないのですが、ここで質問です。 他のサイトを見ていると、よくこの場合と同じように登録されているものがあり、そのサイト内のTOPページ以外のどのURLをクリックしても「10秒後にTOPページにジャンプします」と書かれたページがでてきてTOPに飛べるようになっているサイトを見かけますがあれはどのような方法なのでしょう? それについて具体的に教えていただきたいのですが、この場だけでは説明しきれないということであれば参考になるURLか書籍でも結構ですので教えていただけませんでしょうか。

  • 自動的にページトップへ。

    リンクなのですが、 クリックすると、その部分が自動的にページのトップに表示される用にするにはどのようなタグを指定したらいいのでしょうか? よく、アドレスに「~.html#top」とかあるヤツのことです

  • トップページに行く方法は?

    検索していて見つけたページで、「戻る」、「次に行く」、「トップページに行く」等の表示が全くないものに、時々出くわします。 このようなページから、トップページに行く方法は何かありますか?教えてください。

  • 2ページ目をB5にしたいのですが

    Word2000を使っています。 3ページの文書があり、2ページ目の1行目に数文字分の文字が入力されています。2ページ目の2行目から20行目まで段組で2段にし、それ以降は改ページで3ページ目から始まっています。 2ページ目に段組が入っていて、1行目は1セクション、2行目からは2セクションの場合で、B5にするには、どのようにしたらいいのでしょうか? 解りにくい説明かもしれませんが、どなたか宜しくお願いします。

  • トップページが検索に引っかからない

    サイトを運営しています。 トップページよりも第二階層のページへのアクセスが多いらしく、 検索エンジンで検索した際に、第二階層のページが表示されてしまいます。 肝心のトップページはだいぶ下位になってしまっています。 トップページにmetaでワードを入れたりしましたが改善しません。 どのような解決方法がございますでしょうか。 なにとぞよろしくお願いいたします。

    • ベストアンサー
    • SEO

専門家に質問してみよう