インターネット&PC120%活用:インターネット活用編

Windowオブジェクト その2 (open, close)

今回はWindowオブジェクトのメソッドのうち、openとcloseで遊んでみたいと思います。


1 OPEN
openメソッドは、新しいWindowを開くメソッドです。
書式は以下の通りです。

window.open("URL", "name", ["Features,..."] );
[ ] は省略可能
URLには新しく開いたWindowに読み込むページのURLを指定します。
nameはそのWindowオブジェクトの名前(nameプロパティになる)を指定します。このnameを使って
ある特定のWindowを参照することができます。
FeaturesはWindowの外観、機能を指定します。以下のような属性を定めることができますが、I.E.では
ほとんど無効のようです。(ネスケでは反映される)
copyhistory [=yes/no]   履歴をコピーする
menubar [=yes/no]    メニューバーの表示
scrollbars [=yes/no]    スクロールバーの表示
status [=yes/no]      ステータスバーの表示
toolbar [=yes/no]      ツールバーの表示
height =Pixel         ウィンドウの高さ
width =Pixel         ウィンドウの幅

通常は、
mywin = window.open ("...", ".....");
のように変数(ここではmywin)を使い、オープンしたウィンドウを変数に格納します。そうすると以後
このウインドウを操作する(サイズの変更やクローズ)時に、この変数を参照して操作することができます。


2 CLOSEとFOCUS、BLUR
closeはWindowを閉じるメソッドです。
ただ単に close(); とするとフォーカスのあるWindowが閉じます。
ある特定のWindowを閉じたい時は、window.open(); の時に割り当てた変数を使います。
例えば、mywinという変数で参照されるWindowを閉じる時は、mywin.close(); と言う風に記述します。

Windowにフォーカスを与えるメソッドがfocusです。一方、フォーカスをはずす時はblurを使います。
mywin.focus();
mywin.blur();
のように記述します。


3 簡単な実例

以下は、
Windowのオープン、リロード、クローズのScriptです。
function newopen() では、新しいWindowを開いて(変数mywin1)、resize.htmを読み込んでいます。
そのあと、ウィンドウサイスを縦400、横450に変更し、フォーカスしています。

function.reload() では、最初に作ったWindow(変数mywin1)に、clock.htmという別のページを
読み込ませています。

function winclose(); ではWindowを閉じています。

なお、変数xはWindowが作成されているかどうかチェックするためのフラグ用です(x=1 作成されている)

<SCRIPT Language="JavaScript">
<!--
var x=0,mywin1;
function newopen() {
mywin1=window.open("resize.htm","win1","top=100,left=250");
mywin1.resizeTo(400,450);mywin1.focus();
x=1;
}

function reload() {
if (x==1)
{mywin1.open("clock.html","win1","top=100");mywin1.focus();
// window.open("clock.html","win1","top=100"); という記述も可能だが、Windowは奥に表示される
}
else
{alert("新しいWindowが存在しません。Windowサイズ変更のページを開くをまずクリックして下さい");}
}

function winclose() {
if (x==1)
{mywin1.close(); x=0;
}
else
{alert("新しいWindowが存在しません。Windowサイズ変更のページを開くをまずクリックして下さい");}
}
// -->
</SCRIPT>


もうひとつ、ちょつと危険な実例。
無限にWindowを開くのScriptです。
ここでは、新しく開くWindowを15個にしていますが、これを無限にすると、PCのリソースを使い切って
PCが落ちます。

<SCRIPT Language="JavaScript">
<!--
for (i=0;i<15;i++){
mywin=window.open("resize.htm","","top=100,left=250");
mywin.resizeTo(400-i*20,450-i*20);mywin.focus();
}
// -->


TopPage

inserted by FC2 system