2017/05/23
今時iframeかと思いますが、youtube動画の貼り付けや、広告など広く使われているようです。HTML4.01strictにおいてはiframe自体が未定義だったと思うのでvaldateに通らないので使わない、というか使えない感じだったと思います。それでも何かとiframeで提供されるものが多くて仕方なく利用していました。
HTML5では、そのような現状に合わせてかどうかわかりませんが、iframeが仕様に取り込まれました。現在は、いろいろなところから提供されているiframeをそのまま使うことができますが、frameborder属性は廃止になっていますので注意が必要です。Youtubeの埋め込みタグにはframeborder="0"がかきこまれていますが。
iframeにはname属性の指定ができまして、リンクのターゲットにiframeにつけたnameの値を指定すればそこにリンクが開きます。下のリンクをクリックしていただければわかるのですが、Yahooとgoogleは何も表示してくれません。本サイトともう一つはiframeの中にサイトが表示されます。サーバー側で何か仕込んでいるようです。iframeの初期値は ルパン三世 タイプライター風 CSS のサンプルファイルです。
ググってみるとサーバの設定でできるようです。サーバの種類によって設定方法が異なるのは当たり前でしょうが、レンタルサーバーなどでは触れない場合があります。ヘッダー情報に X-Frame-Optionsを指定してsameoriginを指定すればいいとのことです。phpでも可能とのことです。
ヘッダー情報なのでHTMLを出力する前に
<?php header('X-FRAME-OPTIONS: SAMEORIGIN'); ?>
を記述してあげればOKとのこと。
netks.org ちなみにここは非ITなブログです。よろしくです。
はトップページだけX-Frame-Optionsを設定していますのでクリックしてもiframeの中は真っ白だと思われます。