こんにちは。検索しても同じような質問内容がなかったので質問させてくださいm(_ _*)m
親ウィンドウからサブウィンドウを開く時の位置指定なんですが、
親ウィンドウと少し重なるような感じで左下に開かせたいと思います。
まず、こういった動作は可能なんでしょうか?
親ウィンドウの情報をサブウィンドウが取得してから開けばいいのかなと思ったんですが、
その親ウィンドウの情報の取得方法がよく分からなくて。(親ウィンドウのtopから30px、leftから30pxという方法でいいんでしょうか?)
もしサンプルなど載っているサイトがありましたら
教えてください。
なんだか要領得なくて申し訳ないんですが、宜しくお願いします。
No.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();
}
ありがとうございますm(_ _*)m
まず自分の画面上での位置を取得してみようと思いまして、やってみたんですが上手くできませんでした。(^^;
(あ、これは私の知識不足によるところが大きいんです)
ここでのx,yは変数ってことですよね?
お暇な時でいいので、また教えてもらえたらと思います。自分でも引き続きあれこれやってみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux ubuntu ウィンドウのバー ダブルクリック 巻き取る 1 2022/04/28 19:28
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- JavaScript ソースコードのいじる場所が分かりません。 1 2022/12/23 02:06
- Word(ワード) Microsoft Word2023で、修正箇所を表示させたい 1 2023/02/09 10:07
- その他(ソフトウェア) Figma 1 2023/06/23 14:22
- CPU・メモリ・マザーボード タスクマネージャーでのアプリの稼働についての質問です。 2 2023/06/14 12:58
- Excel(エクセル) WPSスプレッドシートの起動オプションの設定は可能ですか? 1 2023/02/11 19:49
- Visual Basic(VBA) Vba LongPtrについて教えてください 2 2022/08/19 11:14
- Windows 10 2つのウィンドウ選択時の表示について 10 2023/07/25 08:48
- Windows 10 プレビューウインドウに表示されたメッセージについて 1 2022/04/13 13:53
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルのシート上に別のシー...
-
VBAで任意のウインドウのサイズ...
-
Javascript_submit()完了後に処...
-
VBの画面で、全ウィンドウを一...
-
JavaScriptで指定Windowを最大...
-
親ウィンドウから子ウィンドウ...
-
ウィンドウ名からウィンドウオ...
-
GetAncestorのGA_ROOTとGA_ROOT...
-
window.close()で確認メッセー...
-
子→親ウインドウへデータを受け...
-
ウィンドウサイズを開いたとき...
-
JavaScriptでPDFを新規ウィンド...
-
window.openで新しいページを後...
-
VBScriptでリンクをクリックし...
-
ウィンドウの2重起動を防止したい
-
Access2007では、フォームのウ...
-
1クリックでモーダルを開いてか...
-
秀丸エディタでHTMLタグテキス...
-
<EXCEL/VBA> OUTLOOKのウインド...
-
デスクトップ画面を4分割するには
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルのシート上に別のシー...
-
Javascript_submit()完了後に処...
-
VBAで任意のウインドウのサイズ...
-
ウィンドウの2重起動を防止したい
-
window.Openをモーダルにできま...
-
<EXCEL/VBA> OUTLOOKのウインド...
-
ウィンドウ名からウィンドウオ...
-
VBの画面で、全ウィンドウを一...
-
子ウィンドウの存在確認
-
初心者javascript グーグルクロ...
-
インタネットからPDFファイルだ...
-
親ウィンドウから開いた子ウィ...
-
子ウィンドウより親ウィンドウ...
-
1クリックでモーダルを開いてか...
-
子ウィンドウを常に手前表示、...
-
ポップアップと作業ウィンドウ...
-
IEでのみ発生するJavaScriptエラー
-
ブラウザ(IE)からエクスプロー...
-
JavaScriptで指定Windowを最大...
-
リンク時、親ウインドウを最前...
おすすめ情報