あるサンプルjavascriptを見ていて何をしているのかよく分からなかった箇所について教えてほしいと思います。
コードは下記になります。
親画面→子画面を呼び出して、子画面のボタンを押下すると親画面のメインフレームを更新します。
下記は子画面のボタン押下時のjavascriptに記述されています。
opener.parament.document.all.tags("frameset")[cnt-1].setAttribute("rows", "*,100%")
※ cntはframesetの数が設定されているようでした。
フレームは4つあり、上下左右の構成です。
自分なりに調べた感じでは親画面の一番下のフレームの幅を変更するような記述にみえました。
ただ"*,100%"の記述が何を意味するのかがよくわかりません。幅といっても画面自体なのか、他のフレームとの幅の比率なのか・・・。
実際に色々値を変えて動かしてみたのですが、何が変わっているのかよくわかりませんでした。
もしよろしければどなたか教えて頂けないでしょうか。
No.1ベストアンサー
- 回答日時:
cntはフレームの数ではなくframeset数じゃないかなと思いますが・・・
framesetというのは、各フレームを包括するタグです。
<frameset>
<frame src="frame1.html" name="frame1">
<frame src="frame2.html" name="frame2">
</frameset>
やじるしこんな感じですね。
つまり、opener.parament.document.all.tags("frameset")[cnt-1]は
開いたページの中にある最期のフレームセットではないかなと推測します。
[cnt-1]はインデックス番号です。インデックスは0からカウントされるので、HTML上一番最後に出現するframesetのインデックス番号は[framesetの数-1]になるわけです。
で、本題の.setAttribute("rows", "*,100%")についてですが、要はこのframeset[cnt-1]の属性「rows」に「*,100%」を設定するという意味です。
つまりこれがセットされたタグを書いてみると、上記のタグが
<frameset rows="*,100%">
<frame src="frame1.html" name="frame1">
<frame src="frame2.html" name="frame2">
</frameset>
と言うことです。
こう書いた場合、frame1とframe2は縦並びになり、1段目のframe1の高さは余った高さ分になり、frame2の高さは100%になることになります。これはframesetの基本的なHTMLの記述方法なのでHTMLのリファレンスなど見ればすぐに分かると思います。
ご参考まで。
No.2
- 回答日時:
「*」はブラウザに計算させるような意味合いで、ウィンドウサイズと指定したサイズから決まってくる(残りの)サイズなどになります。
ご質問の例の場合は、rows属性の値を "*,100%" にしています。
詳しくは↓を
http://w3g.jp/xhtml/dic/frameset
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
<iframe>~</iframe>内のwindow...
-
jqueryを利用してインラインフ...
-
<a href="#" …>の意味を教えて...
-
javascriptとApacheの設定
-
bodyにidをつける理由は何ですか?
-
ブラウザをJavaScriptで最小化…
-
JavaScriptのエラー ( 関数の...
-
ナンバーズ 4 の数列をランダム...
-
HTMLタグ 画面サイズを指定
-
Canvasを使って描画して面積取得
-
window.opener.location.href ...
-
「関数が定義されていない」と...
-
プルダウンメニューを別ファイ...
-
SQLのWHEREで全てを質問する方法
-
text/JScript.EncodeはMacIE5で...
-
中央に、アドレスバー表示した...
-
レンタルサーバーでjavascript...
-
ポップアップウィンドウの位置
-
プルダウンメニューの内容の取...
-
テキストボックス内にハイパー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
スマホ上で、左右スワイプで次...
-
インラインフレームで表示され...
-
フレームを跨ぐドロップダウン...
-
エラー:書き込みができません ...
-
子フレームの自動リロードは可...
-
インラインフレームをドラッグ...
-
チェックボックスのチェックを...
-
onunloadイベントでの画面制御...
-
openerは使えないのでしょうか?
-
submitボタンで他のフレームを...
-
親フレームのURLによって、...
-
フレーム内のiframeのデータの...
-
HTMLフォームボタンによるター...
-
親フレームからkeydownイベント...
-
HTMLでサブフレームから親のス...
-
フレームでの右クリック禁止
-
別ページのインラインフレーム...
-
他のフレームのスクリプトを実...
-
Safariで<iframe>のinnerHTMLを...
-
<iframe>~</iframe>内のwindow...
おすすめ情報