『こぶたのラッパ』はサイトを移動しました!
今後はこちらをどうぞ
2008年 01月 26日
HTML5でもframeを使おう!<解決編>
HTML5でframeが使えなくなったらJavadocはどうなるの?のエントリーで、HTML5になったらframeタグが使えなくなるので困るという話を書きましたが、ハテブでは「HTML4.01」を使い続ければいいじゃんという誠に非賛同的な意見ばかりでした。。

しかし2日たった今、解決策を思いつきましたよ!
w3c乙wwwwwww
HTML4.01厨涙目wwwwwwwwwwwwww

・・と煽るのはこれくらいにして。



<HTML5でもframeを使う方法>
1. HTML4.01でframeset/frame/noframesタグを使い、これまで通りのframe分割を行う。
top.html(HTML4.01)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
  "http://www.w3.org/TR/html4/frameset.dtd">
<html>
<head><title>フレームトップ(このページがユーザーからリクエストされる)</title></head>
<frameset cols="200,*">
  <frame src="left.html" name="left">←左フレーム(HTML5)を読み込む
  <frame src="mail.html" name="mail">←右フレーム(HTML5)を読み込む
  <noframes>
    すみませんがフレームに対応したブラウザをお使いください。
  </noframes>
</frameset>
</html>


2. フレームに読み込まれるHTMLはHTML5で作る。
left.html(HTML5)
<!DOCTYPE html>
<html>
<head><title>左フレーム(直接ユーザーからはリクエストされない)</title></head>
<body>

<aside>
  <ul>
    <li><a href="menu1.html" title="メニュー1" target="main">メニュー1</a></li>
    <li><a href="menu2.html" title="メニュー2" target="main">メニュー2</a></li>
    <li><a href="menu3.html" title="メニュー3" target="main">メニュー3</a></li>
  </ul>
</aside>

</body>
</html>


main.html(HTML5)
<!DOCTYPE html>
<html>
<head><title>メインフレーム(直接ユーザーからはリクエストされない)</title></head>
<body>

<h1>成績表</h1>

<datagrid>
  <table>
    <tr><td>田中</td><td>3</td><td>5</td><td>4</td></tr>
    <tr><td>鈴木</td><td>5</td><td>4</td><td>3</td></tr>
    <tr><td>山本</td><td>4-</td><td>5</td><td>3</td></tr>
  </table>
</datagrid>

</body>
</html>





うーん。当たり前すぎる。
もしかして突っ込みいれてくれた人はこれの事を言ってたの?
だとしたらごめん。

この方法で問題があるとしたら、HTML4.01とHTML5でフレーム間のセキュリティポリシーに違いがある場合でしょうか。
子フレーム(HTML5)から親フレーム(HTML4.01)に対してJavaScriptやCookieでのデータのやり取りを行う場合、ポリシーの違いでおかしな動きになるということは考えられそうです。

まあでもこれで無事HTML5に移行できそうです。
frame使ったサイトは作ったこと無いけど(^^
[PR]
by smilkobuta | 2008-01-26 12:39 | Webデザイン

<< とっても便利なmixiのコミュ... コーヒー豆の中に隠れている「男... >>