ホームページ小技 - 作成ポイント - 裏技 - javascriptサンプル 

フレーム合成

フレーム合成?と思う方もいるかも知れません。
この言葉自体は私の造語(?)なので。。。
具体的に言えば、フレームの中のページに直接アクセスされるとフレームを付け加える機能です。

私は、このサイトの前身である no title - your web partner - ではフレーム構成にしてました。
そこで私が一番嫌に思ったのは、アクセス自体はフレームの中のページからなので、リンク等を張られる際もトップではないURLになるんです。 それを解消するため、フレーム内に直接アクセスした場合はフレームを合成するようにしました。

 → サンプル (javascript有効じゃなきゃ動きません)

このように、勝手にフレーム化されてしまいます。
それがこのスクリプトのいいところです。
こうすることにより、管理側にとって満足できるようなデザインやアクセスビリティーで表示されます。

フレームページ
・メインのフレームの部分のタグを<noscript>〜</noscript>で挟む。
例)
<script type="text/javascript" language="javascript">
<!--
check();
-->
</script>
<noscript><iframe src="フレームファイル" name="フレーム名"></iframe></noscript>

・<head>内に下記を記述する

<script language="javascript" type="text/javascript" src="パス/frame.js"></script>


外部ファイル(frame.js)
function check(){

var gurl = location.search;
if(gurl == ""){url = "フレームの中身のURL";}
else{url = gurl.slice(1);}

document.write("<iframe src='"+url+"'></iframe>");
/*注意: ↑の<iframe>のタグは自分のフレーム形態によって中身変更してね*/

}
外部ファイル(framecheck.js)
function check(){

var furl = parent.location.href;
var murl = location.href;

if(furl == murl)
{
url = furl.replace("サイトURL","");
window.open("フレームページURL?"+url,"_parent","width=100%, height=100%");
}

}
フレーム内で表示されるページ全てのファイルの<head>内に書き込む
<script language="javascript" type="text/javascript" src="パス/framecheck.js"></script>

<script type="text/javascript" language="javascript">
<!--
check();
-->
</script>


多分、すっごく分かりづらいと思います。
パスの部分に関しては アドレス指定方法参照

この文章見てもよくわからねぇ〜〜〜って方はサンプル
(うちのサイトをフレーム構成だと想定しての作成です)

フレームサンプル ソース
フレーム内サンプル ソース
frame.jsソースサンプル
framecheck .jsソースサンプル