フレームについて
ウィンドウをオープンした時にwindowオブジェクトをjavascriptから参照したように、
同じドキュメント内にあるframeに対しても、親画面から子画面(子frame)に対して参照ができます。
例えば、以下のようなHTMLを用意します。
test1.html test2.html test3.html
はそれぞれ、親画面から呼び出される子画面(フレーム)です。
親画面から上記の3ファイルを呼び出すHTMLを用意します。
<html>
<head>
<title>フレーム使用例</title>
<script src="./jquery.js"></script>
<script src="./main.js"></script>
</head>
<frameset rows="150,*">
<frame id="frm1" src="test1.html" name="ue">
<frameset cols="250,*">
<frame id="frm2" src="test2.html" name="hidari">
<frame id="frm3" src="test3.html" name="migi">
</frameset>
<noframes>
このページはフレームを使用しています。
</noframes>
</frameset>
</html>
画面表示は、このようになります。

このHTMLに対して、main.js内で以下のようにframeオブジェクトを参照してみます。
$(function(){
//フレームを取得(オブジェクトとして取得される)
let frm1 = $('#frm1');
console.log("frm1 -> " + frm1);
//フレームのwindowオブジェクトを参照する方法
let frm1_cw = frm1[0].contentWindow;
console.log("frm1_cw -> " + frm1_cw);
//windowオブジェクトに標準に定義されている「frames」プロパティを参照する
console.log("frames -> " + frames[0]);
});
ブラウザにアクセスした結果、コンソール画面には次のように出力されます。
frm1 -> [object Object] frm1_cw -> [object Window] frames -> [object Window]
出力結果から、「$(‘#frm1’)」で参照した場合と、「frm1[0].contentWindow」と「frames[0]」で参照したものはオブジェクトの種類が異なります。
id指定で取得したものはObjectになり、残りの2つで参照したものはwindow(オブジェクト)になります。
フレーム内のdocumentに対して、操作をしてみます。
先ほどのjavascriptに以下のように追記します。
window.onload = function(){
frames[1].document.body.style.background = "#99CCFF";
}
ここでは、2つめのフレームに対して、bodyタグの背景色を変更しています。
window.onloadを使わない場合、親ウィンドウの全てのコンテンツが読み込まれないままjavascriptの処理が終わるので、背景色をjavascriptで変更した後、子ウィンドウがロードされて処理が無効になってしまいます。
実行した画面は次のようになります。

実際に設置した動作例は、以下のURLです。
https://propansystem.net/blogsample/js/014/