以下のように、一度に3つ以上のWebサイトを表示できるページを開発しようとしています。
<ul>
<li>
<iframe src="http://www.facebook.com/" /><p> iframe is not supported</p>
</li>
<li>
<iframe src="http://www.yahoo.com/"></iframe>
</li>
<li>
<iframe src="http://www.google.co.in"></iframe>
</li>
</ul>
問題は、yahoo.comとgoogle.co.inを表示しますが、iframeにFacebookを表示しないことです。
それらのサイトのHTTP応答ヘッダーX-Frame-Optionを確認する必要があります。値が「DENYまたはSAMEORIGIN」の場合、それらのWebサイトをiframeにロードできません。
DENY =誰もiframeにWebサイトをロードできません。同じドメインページでも読み込めません。 SAMEORIGIN =同じドメイン内のページのみが、このWebサイトをiframeにロードできます。
一部のWebサイトはiframeへの埋め込みを無効にすることを決定しているため、純粋なHTMLソリューションでは何もできません。 Webサーバー経由でターゲットサイトをプルし、htmlなどを使用するサーバーサイドスクリプト(PHP)を作成できます。
サイトが読み込まれているかどうかを確認できる唯一の方法は、ターゲットWebサイトに存在する特定の要素をiframeで検索することです(たとえば、Facebookのフロントページに特定のIDまたはクラスを持つdivなど)。 。その理由は、異なるWebサイトがiframeへの埋め込みを異なる方法で処理できることと、一部のコンテンツが表示されることもあれば、何も表示されないこともあり、実際の要素を確認する唯一の方法です。
facebookでメインサイトをフレームにロードしたくない
<iframe src="http://m.facebook.com/" width="200" height="300" scrolling="auto" frameborder=0></iframe>
width = "200" height = "300"はそれに応じて調整できます。
これにより、メインサイトではなくモバイルバージョンのFacebookがフレームに読み込まれます。
あなたはそれを行うことができません、あなたはボタンのようなiframeしかできません...他のサイト全体ではありません。