とっておきの手土産を教えて

(1)
JavaScriptで指定のWindow ( 例 : winOpenで開いた新規Window、子Windowから見たTopなど ) を最大表示する方法を教えてください。

(2)
JavaScriptで指定のWindowの位置 ( 座標 ) を指定する方法を教えてください。
(Win32APIのSetWindowPosのようなものをイメージしています)

ターゲットのブラウザは、(1)、(2)のどちらもIE5.x / 6.x、NN 4.x です。


手持ちの書籍、Google等で探してみたのですが、発見できませんでした。

A 回答 (2件)

(1)について


親ウィンドウ側のスクリプトは、

function openwin(){
SW=window.open("***","sub");
SW.window.resizeTo(screen.availWidth, screen.availHeight);
SW.window.moveTo(0,0);
}

これで子ウィンドウを最大表示で開けると思います。 screen.availWidthは画面の有効領域の幅、screen.availHeightは画面の有効領域の高さを持つプロパティになります。
もしあらかじめ開いた子ウィンドウを最大表示にしたいというケースでしたら、その子ウィンドウを開く際に、あらかじめそれをオブジェクトとして取得しておき(上記の初めの処理のように、「オブジェクト名=window.open()」と記述しておきます)、そのオブジェクト名を使って「オブジェクト名.resizeTo(screen.availWidth, screen.availHeight); オブジェクト名.window.moveTo(0,0);」という処理を行えば良いと思います。 ついでにウィンドウにfocus()を与えておけば、ウィンドウが後ろに回っていても前に出てくるでしょう。
なお、window.open()でウィンドウサイズを指定することもできますが、この場合にこちらでサイズを指定すると、若干画面よりも大きいウィンドウが開かれる場合があります。 また、window.moveTo(0,0)はウィンドウの左上の頂点が画面左上にくるようにウィンドウを移動させる処理で、最大表示時には画面外にウィンドウがはみ出るのを防ぐために必須だと思います。

子ウィンドウから親ウィンドウの最大表示は、

function openwin(){
opener.window.resizeTo(screen.availWidth,screen.availHeight);
opener.window.moveTo(0,0);
}

これで可能と思います。 「opener.window」でそのウィンドウを開いた親ウィンドウのプロパティを参照できます。 ついでにopener.window.focus()を入れておけば、親ウィンドウを前面に押し出せます。

(2)については、
親ウィンドウから子ウィンドウのプロパティを参照する場合は、上でも少し触れましたが、window.open()を処理する際に子ウィンドウをオブジェクトとして取得しておき、それを筆頭につけて「オブジェクト名.window」という形で記述すれば良いと思います。 上記の記述を例にするのであれば、「SW=window.open()」で子ウィンドウを開いているので、「SW.window.resizeTo(*,*);」で子ウィンドウのリサイズ、「SW.window.moveTo(*,*);」で子ウィンドウの移動ができるはずです。
子ウィンドウから親ウィンドウを操作する場合は、これも上で触れましたが、opener.windowという形で記述すれば良いでしょう。 「opener.window.resizeTo(*,*)」で親ウィンドウのサイズの変更、「opener.window.moveTo(*,*)」で親ウィンドウの指定の座標への移動が可能なはずです。

参考になれば。

この回答への補足

> 子ウィンドウから親ウィンドウの最大表示は、

フレームの親、という意味です。ですので、
opner → top
に変更しました。
結果は、

NN 4.78 ○
IE 6.0 ○
Opera 6.05 × ( これは仕方がない? )

でした。
ありがとうございました。

補足日時:2003/10/08 18:56
    • good
    • 0
この回答へのお礼

コメントありがとうございます。
取り急ぎお礼申し上げます。
(結果報告は、後ほど・・・)

お礼日時:2003/10/08 13:33

この回答への補足

> winOpenで開いた新規Window

window.open の誤りです。訂正します。

補足日時:2003/10/08 11:32
    • good
    • 0
この回答へのお礼

情報提供ありがとうございます。
拝見しましたが、子Windowから親Windowの座標やサイズを操作する例はないようです。
また、最大表示 ( サイズは環境に依存 ) の方法もわかりませんでした。

お礼日時:2003/10/08 11:34

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報