前提・実現したいこと
親ウィンドウのFRAME(BTM)にあるボタンをクリックする事で子ウィンドウ(サブウィンドウ)が開きます。
子ウィンドウのFRAME(BTM)にあるボタンをクリックする事で親ウィンドウの別FRAME(TOP)にあるjsを実行したいです。
いろいろと調べてみましたが、全く動かず途方に暮れております。
お力添えをお願い致します。
該当のソースコード
HTML
1<!--親:メインフレーム--> 2<FRAMESET ROWS="120px, *" border="0"> 3 <FRAME SRC="top.asp?input=1&num=1&next=1" NAME="TOP"> 4 <FRAME SRC="btm.asp?num=1&next=1" NAME="BTM"> 5</FLAMESET> 6<!--親:TOPフレーム--> 7 <INPUT TYPE=BUTTON onclick=under(10)> 8 <INPUT TYPE=BUTTON onclick=under(15)> 9 <INPUT TYPE=BUTTON onclick=under(20)> 10<!--親:BTMフレーム--> 11 <INPUT TYPE=BUTTON onclick=SubWin()> 12 13<!--子:メインフレーム--> 14<FRAMESET ROWS="120px, *" border="0"> 15 <FRAME SRC="top.asp?input=1&num=1&next=1" NAME="TOP"> 16 <FRAME SRC="btm.asp?num=1&next=1" NAME="BTM"> 17</FLAMESET> 18<!--子:TOPフレーム--> 19<TABLE>---</TABLE> 20<!--子:BTMフレーム--> 21 <INPUT TYPE=BUTTON onclick=submid()>
JavaScript
1 2<!--親:TOPフレーム--> 3function topalert(num) { 4 alert("サブウィンドウから実行されました\nサブウィンドウを更新します") 5 document.MAIN.action = "----.asp?num="+num; 6 document.MAIN.target = "BTM"; 7 document.MAIN.submit(); 8 9<!--子:BTMフレーム--> 10 11function parentload(num){ 12 window.opener.top.document.getElementsByName('TOP')[0].topalert(num); 13}
試したこと
子ウィンドウのメインフレームjsを実行
メインフレームjsから親を呼び出しなども試しましたが全く動きませんでした。。。
追記(20200212
上記記載のソース以外に試したものを下記へ追記致します。
一つ目:親ウィンドウの別フレーム(TOP)にあるJS(topalert)を実行。
JavaScript
1function parentload(num){ 2 window.opener.parent.frames['TOP'].topalert(num); 3}
二つ目:親ウィンドウの別フレーム(BTM)のURLを書き換え。
※親ウィンドウの別フレーム(TOP)にあるJS(topalert)が実行出来ないのかと思い、
親ウィンドウの呼び出し元フレーム(BTM)を直接動かそうと考えました。(topalert実行時と同じ動き)
JavaScript
1function parentload(num){ 2 parent.opener.location.href = "top.asp?num="+num+"&next=1"; 3}
分かり難いかと思い、現状の動きを下記へイラストにて添付します。
簡単な内容のため、「余計に分からん!」となるようでしたら削除致します。。。
回答1件
あなたの回答
tips
プレビュー