![]() |
| カレッヂ |
質問者 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裏技 |