フレームを使っちゃ駄目と説く理由を何度読んでも納得できない落書き人です。
ブラウザが上位互換でframesetとframeを捨てることは無いと思われますので、廃止要素だろうが使い続けるという選択肢もあります。
しかしHTML5に移行したからには、iframeで如何に代用できるかという無駄な努力を続けています。これは廃止理由の論法に納得できない落書き人の依怙地ですので、この備忘録は笑ってやってください。:D
フレームセットは良かったなぁ
メニューとコンテンツで構成するページが簡単に作成できてよかったなぁ。
フレームの境も自由に動かせて、フレームセットの構成しだいでユーザーにとっても使いやすいページになります。
そしてフレームセットが廃止されて、いまはPHPやSSIで動的にメニューを埋め込んだり、JavaScriptで動的にロードしたり、各ページに重複記述は仕方ないと割り切ったりで、結局は難しくなっており、なんか違うなと感じています。
SEO対策が云々、これはコマーシャルサイトはそうかもしれませんが、URLの工夫次第で問題解決できそうです。
ページのシンプルさですが、書き手からするとフレームセットの方がシンプルだと思うのですが。
でも、レスポンシブデザインがあたりまえになったきましたので、もうフレームセットを使うことはないかな。
フレーム利用でのナビゲーション改善
フレームセットの欠点であるナビゲーション性の悪さ、それは親windowと子windowの組み合わせで
・ブラウザのタブ見出しが表示されない
・ブラウザのhistoryに反映されない
それは対処すれば済む話で、この2点に対処すれば、ブクマーク性の欠点は解消されます。
なお、単純にナビゲーション性が悪いと言う人がいますが、メニューとコンテンツが分離されて、極めてナビゲーション性が良い構成になります。この構成をとるウェブページはかなり多いはずです。
ブラウザのタブ見出しに表示
これは単純で「document.title」に親windowと子windowの組み合わせに対する、適切な見出しをセットするだけです。
ブラウザのhistoryに反映
これでブラウザも戻る・進むの機能と、アドレス欄のURL表示を親windowと子windowの組み合わせに連動させます。
連動させるURLはハッシュアンカーやURL引数を用いて、ロード時にその組み合わせを再現させます。
これでブックマークされても、問題なく目的のページ(親windowと子windowの組み合わせ)が開かれるようにできます。
親windowにwindow高さの変更を反映
iframeが使いにくい一つに、子windowページの高さが、親windowのiframe要素の高さと連動しないことがあります。 ここの落書き人はJavaScriptで汎用化して連動させています。「/js/__resizeChild.js」を参照してください。
サイト内リンクについて
_selfや_topの使いわけ。
framesetのframe境界線を再現
あの動かせる可変の境界線は捨てがたいものがあります。
参考文献:ボックス区切り移動
フレーム内単独ページが開かれたら
・・・・・あとで。