新しくウィンドウを開く時に元のウィンドウの真ん中に移動させるには?

[上に] [前に] [次に]
イースターエッグ 1999/08/16(月) 00:04:13
あるウィンドウからそれよりも小さいウィンドウをウインドウの真ん中に開きたいのですが、いまいちよくわかりません。
innerwidthとかでウィンドウのサイズを調べて、それを
window.open("a.html","A",top=値からウィンドウ分のサイズを引いた値の半分の大きさ.......てな感じでやれるのかな?と思ったのですが、よく分かりませんでした。
何かいい方法があればお願いします。

Nobu3 1999/08/17(火) 00:16:52
では、計算式でも書きましょう。

top=現在のウィンドウのtop+(現在のウィンドウのheight-新しく開くウィンドウのheight)/2

leftは「top」を「left」、「height」を「width」に読み替えてどうぞ。

たぶん、式はあってると思います。
でも、調べ方はちょっとわかりません。

たこすけ 1999/08/17(火) 19:05:00
> 現在のウィンドウのtop(left)
NC4ならscreenY(screenY)、IE4ならscreenTop(screenLeft)
> 現在のウィンドウのheight(width)
内側の高さ(幅)の場合
NC4ならinnerHeight(innerWidth)、IE4ならdocument.body.clientHeight(document.body.clientWidth)
外側の高さ(幅)の場合
NC4ならouterHeight(outerWidth)、IEは知らない。
> 新しく開くウィンドウのheight(width)
これは自分で設定できますね。

プロパティはこんなもんで・・・
あとはNobu3氏の計算式を使用すれば多分できると思います。

イースターエッグ 1999/08/18(水) 04:24:46
色々教えていただいてありがとうございます。
以下の様にしてみましたが、うまく動きませんでした(;_;)
どこかおかしな点があれば、教えてもらえませんでしょうか、
よろしくお願いします。

var X = 0;
var Y = 0;
var Atai = '';
X = window.screenX+(window.outerwidth-200)/2;
Y = window.screenY+(window.outerheight-200)/2;
Atai = 'top='+Y+'left='+X;
window.open("A.html","_blink","width=200,height=200",Atai);

イースターエッグ 1999/08/18(水) 04:27:43
あ、1個コンマが抜けてる.....(;_;)

たこすけ 1999/08/19(木) 09:31:38
まず、大文字小文字は正確に書きましょう。
outerwidth → outerWidth
outerheight → outerHeight

> あ、1個コンマが抜けてる.....(;_;)
この発言は
> Atai = 'top='+Y+'left='+X;
これに対してですよね。
じゃあ、ここは既に修正済みとして

後は
> window.open("A.html","_blink","width=200,height=200",Atai);
この部分を
window.open("A.html","_blink","width=200,height=200,"+Atai);
このように記述すれば大丈夫・・・・・かな?

イースターエッグ 1999/08/19(木) 10:17:28
[[解決]]
どうもりがとうございます。
うまく動きました。

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