プロが教える店舗&オフィスのセキュリティ対策術

こんにちは。検索しても同じような質問内容がなかったので質問させてくださいm(_ _*)m

親ウィンドウからサブウィンドウを開く時の位置指定なんですが、
親ウィンドウと少し重なるような感じで左下に開かせたいと思います。
まず、こういった動作は可能なんでしょうか?
親ウィンドウの情報をサブウィンドウが取得してから開けばいいのかなと思ったんですが、
その親ウィンドウの情報の取得方法がよく分からなくて。(親ウィンドウのtopから30px、leftから30pxという方法でいいんでしょうか?)
もしサンプルなど載っているサイトがありましたら
教えてください。
なんだか要領得なくて申し訳ないんですが、宜しくお願いします。

A 回答 (1件)

> 親ウィンドウの情報をサブウィンドウが取得してから開けばいいのかなと思ったんですが、



↑微妙に違います。
親ウィンドウが自分の位置を確認してから子ウィンドウを開けば
それで複雑な処理は不要になります。


IEなら
left=x;
top=y;

NNなら
screenX=x;
screenY=y;

で、自分の画面上での位置が確認出来ます。
その後、x,y共に +30px の位置に子windowを開けばOKです。

この回答への補足

こんばんは!
以下の感じで概ね意図通りに出させるようになりました!ducklingさんのおかげで難しく考えることなく出来たような気がします。ありがとうございました。
でも、その時々によって子ウィンドウの出る場所が微妙にズレてしまうんですけどね。(^^;

function wOpen(url,targetName,offsetx,offsety,width,height){

var agt = navigator.userAgent.toLowerCase();

var win = (agt.indexOf('win') != -1);// Windows
var mac = (agt.indexOf('mac') != -1);// Macintosh


var mywinx = null;
var mywiny = null;

if(document.all){

mywinx = window.event.screenX;
mywiny = window.event.screenY;

} else if(document.layers || document.getElementById ){

mywinx = screenX;
mywiny = screenY;

}

if (win) {// Windows

if(document.all){

//e4,e5,e6
var setx = mywinx + offsetx;
var sety = mywiny + offsety;

} else if(document.layers || document.getElementById ){

//n4,n6,n7,m1,o6
var setx = mywinx + (offsetx+150);
var sety = mywiny + (offsety+80);

}
}
else if (mac) {// Macintosh

if(document.all){

var setx = mywinx + (offsetx-70);
var sety = mywiny + offsety;

} else if(document.layers || document.getElementById ){

var setx = mywinx + (offsetx+150);
var sety = mywiny + (offsety+60);

}
}

//サブウインドウを開く
var para =""
+" left=" +setx
+",screenX=" +setx
+",top=" +sety
+",screenY=" +sety
+",toolbar=" +0
+",location=" +0
+",directories=" +0
+",status=" +0
+",menubar=" +0
+",scrollbars=" +0
+",resizable=" +1
+",innerWidth=" +width
+",innerHeight=" +height
+",width=" +width
+",height=" +height


subWin=window.open(url,targetName,para);
subWin.focus();
}

補足日時:2003/01/20 02:40
    • good
    • 0
この回答へのお礼

ありがとうございますm(_ _*)m
まず自分の画面上での位置を取得してみようと思いまして、やってみたんですが上手くできませんでした。(^^;
(あ、これは私の知識不足によるところが大きいんです)
ここでのx,yは変数ってことですよね?

お暇な時でいいので、また教えてもらえたらと思います。自分でも引き続きあれこれやってみます。

お礼日時:2003/01/19 20:46

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