![]() |
カレッヂ |
質問者 GONE
投稿日 2005/10/12(水) 19:47:15
msgWindow=window.open("","navi","width=*,height=*,top=*0,left=*") これで開いたページはmsgWindow.close();で閉じることが出来ますが msgWindowが開いたページにjavascriptで別のページを開く設定がしてあった場合には このページをclose()する場合にはどうしたらよいのでしょうか。
【習熟度】初めて |
回答者 sim
[削除]
投稿日 2005/10/13(木) 03:20:11
作って遊んでたらでかくなっちゃいました。 参考になれば。 windowControl.html ----------------------------------------------------------------------- <h1>親window操作</h1> <script type="text/javascript" src="windowControl.js"></script> <input type="button" value="WINDOW OPEN" onclick="WO('windowControl2.html')"> <div id="deleteButton"></div> ----------------------------------------------------------------------- windowControl2.html ----------------------------------------------------------------------- <h1>子window操作</h1> <script type="text/javascript" src="windowControl.js"></script> <input type="button" value="WINDOW OPEN" onclick="WO('windowControl3.html')"> ----------------------------------------------------------------------- windowControl3.html ----------------------------------------------------------------------- <h1>孫window操作</h1> <script type="text/javascript" src="windowControl.js"></script> <input type="button" value="WINDOW OPEN" onclick="WO('どっかの.html')"> ----------------------------------------------------------------------- windowControl.js ----------------------------------------------------------------------- var KoW = new Array(); var objOYA,obj; var windowNo = 0; var windowName = window.name; var parentName = ''; //共通 function WO(url){ if(windowName == parentName){//親です。 openW(url); objOYA = window; }else{//子です objOYA = opener.getParentWindowName(); opener.objOYA.openW(url); } } //親専用 function DelW(n){ KoW[n].close(); KoW[n] = ''; makeButton(); } //親専用 function openW(url){ KoW[windowNo] = window.open(url,windowNo,"width=300,height=300"); windowNo++; makeButton(); } //親専用 function makeButton(){ obj = document.getElementById('deleteButton'); obj.innerHTML = ''; for(i = 0;i < windowNo;i++){ if(KoW[i]){ obj.innerHTML = obj.innerHTML + '<input type="button" value="WindowNo.' + i + '削除" onclick="DelW(' + i + ');">'; } } } //共通 function getParentWindowName(){ return objOYA; } //共通 window.onunload = function(){ if(windowName == parentName){//親です。全ての子を消す。 for(i = 0;i < windowNo;i++){ if(KoW[i]){ KoW[i].close(); } } }else{//子です。自分の窓削除ボタンを消す。 opener.objOYA.KoW[windowName] = ''; opener.objOYA.makeButton(); } } ----------------------------------------------------------------------- 意図したものと違ってたらごめんなさい。 |
返信(回答)する
Web裏技 |