フレームでのcols設定について
フレームを使用してホームページを作っている者です。
framesetのcolsの設定にて
ブラウザの中心から左へ329ピクセル左をフレームの境目に設定したいのですが、
可能でしょうか?
気持ちとしては
<frameset cols="50%-329,*"BORDER="0">
と設定したい感じです。
JavaScriptを使用して
ブラウザの幅を取得して半分にして329ピクセル加算する方法で実現しようと考え
------------------------------------------------------------------------------
<html lang="ja">
<HEAD>
<title>フレーム設定</title>
</HEAD>
<script language="javascript" type="text/javascript">
//ブラウザ幅を求めるgetBrowserWidth()
//my-notebook(http://osima.jp/blog/js-getBrowserWidth/index.html)さんから拝借
function getBrowserWidth() {
if ( window.innerWidth ) {
return window.innerWidth;
}
else if ( document.documentElement && document.documentElement.clientWidth != 0 ) {
return document.documentElement.clientWidth;
}
else if ( document.body ) {
return document.body.clientWidth;
}
return 0;
}
</script>
<script language="javascript" type="text/javascript">
//フレームの左側の幅を求めるLeftWide()
function LeftWide() {
var leftwide = (getBrowserWidth())/2-329;
return leftwide;
}
//framesetを出力するFrameSet()
function FrameSet() {
var output = '<frameset cols="' + LeftWide() + ',*"BORDER="0">';
document.write(output);
}
</script>
<script language="javascript" type="text/javascript"><!--
//FrameSet()の呼び出し
FrameSet();
// --></script>
<frame src="./左のページ.html" name="left" marginwidth="0">
<frame src="./右のページ.html" name="right">
</frameset>
</html>
------------------------------------------------------------------------------
と書いたのですが、
getBrowserWidth() を<BODY>~</BODY>内に書かないとブラウザ幅を取得してくれないらしく、
return 0;が帰ってきてしまい、左のページだけ表示され期待した結果が得られませんでした。
framesetの有るHTMLには<BODY>~</BODY>は定義できないのでここで詰んでしまいました。
ブラウザの中心から左へ329ピクセル左をフレームの境目に設定出来るのであれば
どんな方法でも構いません。
お知恵を拝借させてください。よろしくお願いします。
追記
当方ブラウザはIE9を使用しております。
HTML、JavaScript共に初心者ではありませんが、
趣味程度の浅い知識しか御座いません。
お礼
返事が大変遅くなり、申し訳ありません(>_<) やはり外部で解析する位しか方法なさそうですねぇ( i _ i ) でもそれがわかっただけでも助かりました! ありがとうございました(>人<;)