ホームページに外部サイトを読み込む方法について

このQ&Aのポイント
  • ホームページ内に外部サイトを表示する方法について教えてください。
  • 外部サイトを自分のホームページにインラインで表示する方法はありますか?
  • 著作権法に違反せずに、掲示板やアルバムなどのCGIをホームページ内に組み込む方法を教えてください。
回答を見る
  • ベストアンサー

iframeで読み込む方法かまたは、

iframe以外の方法で、許可を得たCGIなどを読み込んでいないように 見せる方法はないでしょうか? すみませんが、ご教授下さい。 以前、ご指摘があったのですが、サイト制作でホームページの中に 外部サイトを読み込むという表現をしてしまい、ご回答を得られず、 技術的な解決に至らなかったことですが、上述の通り、許可を得たCGIや 自分で立ち上げたサイト間同士の一部をインラインで表示する場合にことになります。 たとえば、掲示板やアルバムなど、書かれた文字の長さで高さが変わってしまったり、 不動産情報ページなど掲載数の変更(30件→100件)によって高さが変わってしまうため、 どうしても自分のホームページのスクロールバーの中にスクロールバーが出てしまい、 見栄えが良くなりません。 iframeの場合、自分で作ったページであればJavaScriptを使って長さを自動で変えるなどは できるようですが、CGIや自分で作った他のサイトを読み込んでも同じようにできる方法は ないのでしょうか・・・ 当然、著作権法に違反して、外部のサイトをあたかも自身で作ったように見せるような ことをしたいわけではなく、主に掲示板だったり、アルバムなどのCGIをきれいに サイト内に納めたいことが目的となります。 その流れの中で、もし自分が作った2つのサイトに同じ項目が含むものであれば、 インラインでうまく表示して更新も楽になるかと思いまして・・・ 方法はiframe,javaなど何でも構いません。うまくできる方法がございましたら、 ご教授賜れませんでしょうか。 宜しくお願いいたします。

  • HTML
  • 回答数4
  • ありがとう数4

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

  • ベストアンサー
  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.4

>HTTP_REFERERが理解できなく、もしまた教えていただけそうなら大変助かります。 ( http://okwave.jp/qa/q7528781.html ) ★Enviroment Variable and FORM,COOKIE ( http://hpcgi1.nifty.com/Iruka/ENV_FORM.cgi )  の中ほど  ちなみに、このURLの後ろに、/abc/lingwood.html?name=lingwood とか付けてみると・・  先に紹介したHTMLをそのまま出力するCGIは、とても便利です。上で紹介した/abc/lingwood.htmlをつけると、ユーザーには完全にlingwood.htmlとして利用されます。  今回、ダメだといったのは、「表示させたいページ」内で、「埋め込まれるページ」のデザインではなく、「表示させたいページ」のスタイルを適用させたい希望だからなのです。

lingwood
質問者

お礼

お世話になります。たびたびご回答をくださいまして、ありがとうございます。頑張ってやってみます!本当にありがとうございました。

その他の回答 (3)

  • JaneDue
  • ベストアンサー率75% (263/350)
回答No.3

外部サイトのページの一部を取り込みたい、ということですよね。 まともにやるには、PHPやPerl等CGIの知識が必要です。 (JavaScriptでも出来ないことはありませんがかなり面倒です) 本来なら、例えば外部サイトの方で当該部分のHTML(あるいはデータのみ)を提供する仕組みを作り、自分サイトではそれを受け取って(データのみならタグ付け加工して)表示する流れになります。 アフィリエイト広告のように、外部サイト側で表示用のJavascriptを用意する手もよく使用されます。 あるいは外部サイトに<!-- 切り出しここから --> <!-- 切り出しここまで -->等を目印を入れておき、自分サイト側で、外部ページを取得>>必要部分を切り出し>>表示、など。 いずれにしてもCGIの知識が必要です。 PHPは使えますか? もし間に合わせ程度であれば 1. <?php echo file_get_contents("http://取り込みたいURL"); ?> と1行だけの取り込み用○○○.php を自分サーバに用意する 2.iframe側では内容の高さに応じて高さ調整 <iframe id="myIframe" src="○○○.php" style="width:500px;height:500px;border:none"></iframe> <script type="text/javascript"> var obj = document.getElementById('myIframe'); obj.contentWindow.onload = function(){ v = obj.contentWindow.document.body.scrollHeight + 30; //余裕+a obj.style.height = v+"px"; } </script> のような手もあります。ただし、 ・一部ではなくそのURL全体になってしまう ・外部サイト側の画像その他パスが相対パスで記述されている場合は、パスが狂うので事実上アウト。

lingwood
質問者

お礼

御礼が遅くなりまして、失礼いたしました。多角的なご回答をいろいろいただきまして、ありがとうございました。PHPが弱いので、なんとなく敷居が高い感じです・・・いろいろお時間かけて書いてくださったことと思います。本当にありがとうございました。

回答No.2

JavaではなくJavaScriptですが、 ajaxを使用すれば似たようなことが出来るかも知れません。 読み込み対象となるサイトのドメインが、呼び出し元のドメインと異なるとややこしいのですが、同じドメインであれば簡単に呼び出せます。 ajaxでhtmlを読み込んで、div要素かなにかに突っ込めば高さは自動的に変わると思われます。 しかし、ajaxの場合ページの一部分を読み込むなどはできません。 jQueryなどのライブラリを使うとajaxも簡単に扱えますよ。 「jQuery ajax」なんかでggればたくさん情報は出てきます

lingwood
質問者

お礼

ご回答ありがとうございました。ggってみたところ、なんだか難しそうなことがたくさんでてきましたが、これを機に少し勉強してみます。 ありがとうございました。また、御礼が遅くなってしまい失礼いたしました。

  • ORUKA1951
  • ベストアンサー率45% (5062/11036)
回答No.1

 基本的にできません。なぜなら、object要素を使おうがiframe要素を使用しようが、HTMLとしてしか読み込むことができないからです。  以下、「表示したいページ」「埋め込まれるページ」と区別して説明します。  それを行う方法はいくつかありますが、HTTP/HTMLの仕組みからして、必ず別セッションになることを理解してください。「表示したいページ」に必要なデータが他にあれば、それが同じサーバーであろうとなかろうと、改めてHTTPサーバーに対してファイルを要求します。要求されたサーバーは、そのデータにHTTP応答ヘッダ(text/htmlなり)をつけて送られてきます。  言い換えれば、そのデータは本体とは独立しています。  それを行うには、通常のHTTP通信では不可能ですから、 ・「表示したいページ」をCGIないしPHPにして、サーバーのソケット通信を利用して当該HTMLを読み込んでHTMLを解析して、あらためてHTMLを出力させる。  あるいは、「埋め込まれるページ」にて、HTTP_REFERERによって出力するHTML自体を書き換えて、「表示したいページ」でも、ソース自体を書き換える。 1) 表示したいページをCGIとして動作させる。 #!/usr/bin/perl ・・・【中略】・・・  処理スクリプト  ソケット通信   データ処理  ・・・【中略】・・・ print "Content-type: text/html\n"; print "Pragma: no-cache\n"; print "Cache-Control: no-cache\n"; print "Expires: -1\n"; print "Set-Cookie: $COOKIE_DATA\n\n";  while(<DATA>{   s/*****/****;置換操作など   print $_;  } __END__ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="ja"> <head>  以下現在のHTML  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ここまで  こんな面倒くさい糊塗するよりも、掲示板やアルバムのほうが元々CGIでしたら、HTTP_REFERERを参照してデザインを合わせる。  セキュリティソフトでHTTP_REFEREを送信しない利用者もいるので面倒かも  最も良いのは、埋め込みなんて考えずに単純にリンクさせることです。ウェブサイトなんてひとつのサーバーである必要はありません。たとえば、デザインを統一させたければ同様にHTTP_REFERERでページデザインや読み込むスタイルシートを変えればよい。

lingwood
質問者

お礼

御礼が遅くなりまして、失礼いたしました。なるほどです!勉強になります。ただ、実際にはちょっとハードルが高く、手間を考えますと、ORUKA1951さまのおっしゃられますようにしたほうが簡単な感じがします。ちなみに・・・HTTP_REFERERが理解できなく、もしまた教えていただけそうなら大変助かります。 取り急ぎ、御礼まで 宜しくお願いいたします。

関連するQ&A

  • 外部サイトを読み込む方法

    すみませんご教授下さい。 サイト制作でホームページの中に外部サイトを読み込みたいのですが、 外部サイトを読み込んでいないように見せる方法はないでしょうか? たとえば、掲示板やアルバムなど、書かれた文字の長さで高さが変わってしまったり、 不動産情報ページなど掲載数の変更(30件→100件)によって高さが変わってしまうため、 どうしても自分のホームページのスクロールバーの中にスクロールバーが出てしまい、 見栄えが良くなりません。 iframeの場合、自分で作ったページであればJavaScriptを使って長さを自動で変えるなどは できるようですが、外部サイトを読み込んでも同じようにできる方法はないのでしょうか・・・ 初歩的な質問で恐縮いたしますが、 宜しくお願いいたします。

  • iframeのスクロールバーをウインドウと一体化

    http://xappy.jp/ このサイトは外部サイトを iframe で開いているようです(ユーザー登録が必要なページで申し訳ないです)。 その iframe で開いているページのスクロールバーが、 普通のウインドウのスクロールバーと変わらない位置にあります。 自分の知識では、http://zumirin.cool.ne.jp/kowaza/iframe.htm のように iframe 内にスクロールバーを表示させる方法しか分かりません。 どうすれば同じように、iframe内のスクロールバーとウインドウのスクロールバーを一体化できるのでしょうか?

    • ベストアンサー
    • HTML
  • Dream Weaver iframeについておしえてください!

    Dream Weaver8でホームページを作成中です。 iframeを使用したいのですが、スクロール機能を残したままバーを消すことは可能なのでしょうか? デザイン上、バーがとても邪魔です。 「scrolling no」だとスクロール機能も無くなると思うのですが、 あくまでもスクロールの機能を残したままバーのみ隠す方法を教えてください。 宜しくお願いします。

    • ベストアンサー
    • HTML
  • IFRAMEのscrollingを常にnoにしたい

    iframeを使ってBBSをscrolling="no"で表示したいのですが、 src="パスワード.cgi"から自動でbbs.cgiになったときにスクロール表示してしまいます。 iframe内で表示先が変更された場合でもスクロール表示しないようにできるのでしょうか?もしできるのであれば教えていただきたいのですが… 掲示板をiframe と言うことで、某ホームページをを参考にスクロールが表示さ れないようにしてみました。 が以下のようにパスワードを入力後に表示するiframe はスクロールを表示して しまいます。 <script type="text/javascript"> <!-- function LoadFrame(frid) { var IFR = document.getElementById(frid); IFR.style.height = (IFR.contentWindow)? IFR.contentWindow.document.body.scrollHeight: document.frames[frid].document.body.scrollHeight; } //--> </script> <iframe src="member/gate.cgi" name="coach" onload="LoadFrame(this.id)" id= "Ifr" width=497 frameborder="0" scrolling="no"></iframe> 試行錯誤しながらなんとかやってる超初心者です。よろしくお願いします。

  • iframeを使わずに…

    いつもお世話になっております。 毎度毎度申し訳ありませんが、お知恵を貸してください。 今ネットショップを作ろうとサイト作成しています。 トップページ右上、一部のスペースに、管理人の紹介や更新情報などを載せたいと考えています。 最初、ここにはiframeを使おうと考えていました。 トップページ右上の小さなスペースを利用して、管理人の紹介や更新情報などのページを、iframeを使って切り替えていこう、と。 でもframeやiframeはSEO的にあまりオススメされない方法だと知り、iframeを使わずに同様のことが出来ないかと調べていました。 でも、iframeを使わずにスクロールバーを出す方法や、SSIを利用したリンク管理の効率化などの情報はあったのですが、埋め込んだページだけをリンクで切り替える、という私の探す情報は見つかりませんでした。 そこで質問なのですが、このようなことはiframeを使わなければ出来ないことなのでしょうか? 以前、CSSで似たようなことをしていたサイトがあるという話しを聞いたことがあるのですが、探し出すことが出来ませんでした。 もしよろしければ、アドバイスを御願い致します。

    • ベストアンサー
    • CSS
  • iframeのスクロールバー

    iframeの中に、 縦のスクロールバーは出てもいいのですが 横のスクロールバーは出したくないので、表示するファイルはテーブルで幅を固定してるのですが、どうしても横にスクロールバーが出てしまいます。 でないものもあります・・・。 何がいけなくて横のスクロールバーが出てしまうのでしょうか?? よろしくお願いいたします。 ↓こちらです。 http://sound.jp/goldcherry/hp/prof.html wearという欄にどうしても横スクロールバーが出てしまって困ってます。

  • iframeの代用

    いつもお世話になっております。 現在、ページを作っておりまして、あるページの中にiframeを使って中に別のページを埋めています。 なぜこのようにしているかというと、中のページは一定の大きさではみ出した部分はスクロールバーで移動するという表示をしたかったためです。 ただできれば同一htmlにしたいのですが、うまいことやればできるのでしょうか? 明らかに指定の<div>より大きいhtmlを収めて、うまい具合にスクロールバーで表示させたいです。 ご教授お願いします。

    • ベストアンサー
    • HTML
  • 外部ドメインのhtmlをiframeで表示。なおかつ高さも調整しスクロールを出さない方法

    htmlファイルをiframeで表示する際、高さ(縦幅)を取得し、iframe自体の高さを自動で調整できるようにしたいです。(要は縦スクロールを出さないようにしたいです) 過去の記事を検索してみたところいくつかの方法がありましたが、 これらは同サイト内のhtmlでは上手くいくのですが、 外部サイトのhtmlは全くうまくいきません。 良い方法はありますでしょうか? そもそもこれは実現可能なのでしょうか?

  • iframe の代用で objectタグを使ったとき

    iframeを使って、他のページを表示させていたのですが、 iframeは非推奨ということでobjectタグに置換をかけています。 比較的単純なiframeタグは置換できたのですが、 <iframe src="hoge.cgi" width="330" height="100" scrolling="no" Frameborder="no" Marginwidth="0"> の場合の2行目の、スクロールバー非表示、枠はナシ、立体表示ナシ という設定をobjectタグを使ったときどう記述すればいいのか わかりません。同じ属性を書くと無視されてしまいます。。。。 どのように記述すれば、スクロールバーなし、立体表示なしが 実現できるのでしょうか?

    • ベストアンサー
    • HTML
  • HTMLでのフレーム処理について

    こんにちわ。 現在サイトを構築しています。 サイトの一部のページとして掲示板を検討しています。 掲示板には、CGIで動作するフリーのものを使用し既存ページのイメージを変えないようにHTMLに<iframe>インラインフレームで表示しています。 フレーム処理していますのでフレームの部分にスクロールバーが表示されますが、そのスクロールバーを消してフレーム内の掲示板の大きさによって組み込み元のHTMLのサイズを変えることは可能でしょうか? 宜しくお願いします。

    • ベストアンサー
    • HTML

専門家に質問してみよう