質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Internet Explorer

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

2回答

8115閲覧

window.openをモーダルぽくしたときの問題

koji2017

総合スコア30

Internet Explorer

Internet Explorer(IE;MSIE)はマイクロソフトが開発したウェブブラウザです。Microsoft Windowsに組み込まれています。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

1クリップ

投稿2021/12/29 01:07

window.openをモーダルぽくしたいです。
親画面を表示しようとしたときに子画面にフォーカスが当たる、のは良いのですが、
他の画面(メモ帳など)を表示したときも子画面が前面に表示されてしまいます。
この問題を解消する方法はないでしょうか?

showModalDialogではこの問題は起きませんが将来的に使用できなくなるそうなので。
また、できればJava Scriptのみで実装したいです。(JQuery等の環境準備が必要なものは使用したくない)
年末のお忙しい時期とは思いますがよろしくお願いいたします。

下記のサイト様を参考にしています。
「window.openでモーダルぽくする」https://qiita.com/bassyaroo/items/6566d06e27fdd970dc01

html

1openWindowTest.html ←ファイル名 2 3<!DOCTYPE html> 4<html> 5<head> 6<title>windowOpenTest</title> 7</head> 8<body> 9<script type="text/javascript"> 10 11function windowOpen() { 12 13// 適当に高さを指定してwindow.openでポップアップ画面を開く 14var openWindow = window.open('openWindowTest.html','_blank','width=400, height=300'); 15// 親画面にシェードをかける処理を実施 16 17 18// 1秒間隔で子画面の状態を監視 19var interval = setInterval(function() 20{ 21 // 子画面が閉じていたら 22 if(!openWindow || openWindow.closed) 23 { 24 // 親画面のシェードを外す処理 25 26 27 // Intervalを破棄 28 clearInterval(interval); 29 // 画面が起動していたら 30 } 31 else 32 { 33 // 子画面にフォーカスを当てる 34 if(!openWindow.document.hasFocus()) 35 { 36 openWindow.focus(); 37 } 38 } 39},1000); 40 41} 42</script> 43<input type="button" value = "open", onclick='windowOpen();'> 44 45</body> 46</html>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2021/12/29 02:50

https://teratail.com/questions/162313 ←こういう失礼なことをしておいてまた似たような質問をするってどういうこと?
koji2017

2021/12/29 06:18

過去の質問とは別モノです。 似てはいますが。
guest

回答2

0

// 子画面にフォーカスを当てる if(!openWindow.document.hasFocus()) ↓ if(!window.myNewWindow.document.hasFocus()&&window.document.hasFocus())

そうすれば他の画面(メモ帳など)に影響を与えることはなくなるはず

投稿2022/02/14 06:58

arare_0323

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

dialogタグを使ってiframeで別ページを読むとかですかね

投稿2022/01/04 07:18

yambejp

総合スコア116730

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

koji2017

2022/01/04 23:34

ご回答ありがとうございます。 window.openを使用しない、ということでしょうか。 window.openを使用した上で上記の問題を解消する方法を模索しています。
yambejp

2022/01/05 00:08

> window.openを使用した上で上記の問題を解消する window.openはモードレス処理なのでモーダルにはなりません
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問