window.openで開いたウィンドウがアクティブウィンドウでなくなった時に自動的に閉じる様にするには?

[上に] [前に] [次に]
メグ 1999/11/15(月) 09:11:12
始めまして。
ホームページを作るのにJavascriptを使っているのですが、まだ自分で書く事が出来ず、人が書いたのをコピー&ペーストしている初心者です。下のスクリプトを使って写真を別のウィンドウに表示させているのですが、それぞれの写真の大きさが違う為、サイズを指定して小ウィンドウを開けています。しかしながら小ウィンドウを閉じずに次のリンクを押すと、前の写真のサイズのまま新しい写真が表示されてしまいます。そのため、小ウィンドウがアクティブでなくなった時に勝手に閉じるようにしたいのですが方法が見つかりません。小ウィンドウを閉じずにサイズを変える事が出来るのでしたらそれが一番良いのですが。
ご指導のほど宜しくお願いします。

<HEAD>
<SCRIPT LANGUAGE="JavaScript"><!--
var IE = ( navigator.appName == 'Microsoft Internet Explorer' );
var dir = './photos/';
var winSet = 'toolbar=no,location=0,directories=no,status=no,menubar=0,scrollbars=yes,resizable=yes,';
function iWinOpen(iName,wid,hei) {
if (IE) {
wid = wid + 20;
hei = hei + 20;
} else {
wid = wid + 20;
hei = hei + 20;
}
w_h = 'width=' + wid + ',height=' + hei;
window.open (dir + iName, "photo", winSet + w_h);
}
// -->
</SCRIPT>
</HEAD>

<BODY>
<A HREF="JavaScript:iWinOpen('look.jpg',450,330)">リンク</a>
</BODY>

みんこ 1999/11/15(月) 12:23:45
ざっと見ただけで確認してないのですけど、
このスクリプトだったらサイズ指定も変えられません?

look.jpg(width=450 height=330)の時は
<A HREF="JavaScript:iWinOpen('look.jpg',450,330)">リンク</a>

ですので、例えば

choco.jpg(width=200 height=100)の時は
<A HREF="JavaScript:iWinOpen('choco.jpg',200,100)">リンク</a>

...てな感じで('画像名'.'横幅','縦幅')で入れたらいいと思います。

メグ 1999/11/15(月) 15:11:44
早速のお返事ありがとうございます。
みんこさんのおっしゃる通りサイズは変えられます。
しかしながら、前に開かれた小ウィンドウを閉じずに次のを開こうとすると、前の小ウィンドウと同じウィンドウの中に(サイズは変わらず)新しい写真が開かれてしまいます。他に良い方法はないでしょうか?お願いします。

みんこ 1999/11/15(月) 16:00:17
上のスクリプトと全然関係ないですが、こういうことですよね?

<SCRIPT LANGUAGE="JavaScript">
<!-- Code hiding from here
function iWinOpen(n,ww,hh) {
window.open(n,"photo","status=0,resizable=yes,scrollbars=no,width=" +ww+" ,height=" +hh)
}
//-->
</script>

< A HREF="JavaScript:iWinOpen('choco.jpg',200,100)">リンク1</a>
< A HREF="JavaScript:iWinOpen('candy.jpg',200,300)">リンク2</a>

同じウィンドウでもサイズ変わったらいいんですよね。

ちゃいパパ [HomePage] 1999/11/15(月) 18:45:31
>アクティブでなくなった時に勝手に閉じるようにしたいのですが方法が見つかりません。

<HTML>
<BODY onBlur="CloseWindow();">
<SCRIPT LANGUAGE="JavaScript">
function CloseWindow(){
   window.close();
}
</SCRIPT>
AAAAAAAAAAAAAAA<BR>
BBBBBBBBBBBBBBB<BR>
</BODY>
</HTML>
アクティブでなくなった時イベントはonBlurで、window.close();で閉じます。

メグ 1999/11/15(月) 19:37:14
[[解決]]
みんこさん、ちゃいパパさんありがとうございます。

みんこさんが書いてくださったスクリプトを試してみましたが、やはり一度古い子ウィンドウを閉じてからでないと新しい子ウィンドウのサイズの設定が有効になりません。
ちなみにブラウザーはIE5とNN4.7・・・、NN4.7で今試してみた所、ちゃんと動きました。どうやらNNではサイズの設定がちゃんと働くようです。お騒がせしました。ブラウザーの処理の仕方の問題だった様です。

みんこさん、ちゃいパパさん、大変お世話になりました。
みんこさんのスクリプトの方がすっきりしているので、今まで使っていたのを止めて、みんこさんの方を使わして頂きたいと思います。

[上に] [前に] [次に]