メイン画面からjavaScriptを使用して別ウィンドウを立ち上げ、
別ウィンドウ側でresizeToを利用してサイズ指定をしています。
ユーザによって希望する画面サイズが異なるため、
ウィンドウを立ち上げるたびにサイズを手動で変更するのが
面倒であると苦情を受けています。
別ウィンドウを起動するときは
resizeToがかかるのは良いのですが、
再度メイン画面側から実行時には
resizeToがかからないようにしたいと考えています。
☆resize有効
「一度も画面の起動を行なっていない時」or
「一度起動された画面がユーザ側で削除された時」
☆resize無効
「既に起動された画面が残っている時」
このような切替えが可能であるかどうかお教え頂けますか?
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
> ☆resize有効
> 「一度も画面の起動を行なっていない時」or
> 「一度起動された画面がユーザ側で削除された時」
> ☆resize無効
> 「既に起動された画面が残っている時」
これを素直に実装してやればよいのでは?
■親HTML
<HTML>
<HEAD><TITLE>oya.html</TITLE>
<SCRIPT language="JavaScript"><!--
var win = null;
function subwin(a) {
if (!win || win.closed) {
win = open(a.href, a.target, "resizable=yes,scrollbars=yes");
}
win.focus();
return false;
}
//--></SCRIPT>
</HEAD>
<BODY>
<A href="ko.html" target="KO" onClick="return subwin(this)">小窓open</A>
</BODY>
</HTML>
■子HTML
<HTML>
<HEAD><TITLE>ko.html</TITLE>
<SCRIPT language="JavaScript"><!--
window.resizeTo(400,360);
//--></SCRIPT>
</HEAD>
<BODY>KO</BODY>
</HTML>
親HTML内の変数 win は、
・一度も子画面を開いていない時 → null
・画面がユーザに消された時 → win.closed = true
・子画面が開いている時 → win.closed = false
となるので、
!win (分かりやすく書けば「win == null」)
または
win.closed (分かりやすく書けば「win.closed == true」)
の時だけ、子画面を open してやればよいのです。
子HTMLの方では、open された時だけ resizeTo が実行されます。
(win.closed == false の時は、フォーカスが当たるだけです。)
ありがとうございます。
自分で質問後にすぐ回答が解かってしまいました。
やはり一度言葉で書いてみるというのが解決策ですね。
if文に関しては回答頂いた通りです。
sizeの設定だけ子ウィンドウ側でなく
親ウィンドウ側から処理させていただきました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- モニター・ディスプレイ パソコンでスクリーンショットしたもの(HP)を印刷しました。 3 2022/07/03 16:39
- Windows 10 拡大鏡の音声読み上げ機能が機能しません 2 2023/02/23 22:34
- Windows 10 2つのウィンドウ選択時の表示について 10 2023/07/25 08:48
- その他(動画サービス) VLCメディアプレーヤーについて 1 2022/11/29 14:19
- Android(アンドロイド) スマホの広告に困っています 5 2023/06/19 09:02
- Visual Basic(VBA) 起動中のアプリ、ソフトの取得 3 2022/12/28 11:13
- Visual Basic(VBA) Vba LongPtrについて教えてください 2 2022/08/19 11:14
- その他(ソフトウェア) Figma 1 2023/06/23 14:22
- Outlook(アウトルック) outlook メモリ不足 1 2022/05/31 10:16
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「Windows Defender セキュリテ...
-
目の不自由な人が使えるスマー...
-
2画面表示でのVBAのボタン押下...
-
ノートパソコンの液晶画面が緑...
-
外部モニターに、Windows起動前...
-
起動するとスマホの画面が暗い...
-
外出から帰宅したら、PCにこん...
-
パソコンにエラーメッセージが...
-
(富士通 FMV) 起動時にメッセ...
-
自作PC起動時に勝手にBIOS画面...
-
パソコンを立ち上げようと思っ...
-
パソコン画面が真っ白で音だけ...
-
パソコンが起動しなくなりまし...
-
Windows11でアプリの起動が遅い...
-
Windowsが起動しない。Press <F...
-
増設内蔵HDD一台に付き何Wの電...
-
×このアプリは、指定されたコン...
-
PERSONAL.xlsbを削除したい
-
パソコンの電源が入ったり入ら...
-
放電しないと起動しません
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
外部モニターに、Windows起動前...
-
2画面表示でのVBAのボタン押下...
-
Windows11の起動
-
「Windows Defender セキュリテ...
-
iPhoneの画面右上角のへんに 4...
-
外出から帰宅したら、PCにこん...
-
画面が突然縦縞模様になります...
-
ノートパソコンの液晶画面が緑...
-
目の不自由な人が使えるスマー...
-
ダイナブックの画面がおかしいです
-
起動するとスマホの画面が暗い...
-
突然アップルミュージックが使...
-
パソコンにエラーメッセージが...
-
マーケットスピードのマルチ画面
-
Phoenix BIOS セットアップユー...
-
Workstationにお詳しい方にお伺...
-
ノートPCの液晶画面が乱れる!...
-
もう18年も前のパソコンなので ...
-
IBM 画面が真っ黒です。。。悩...
-
スリープモードから起動すると...
おすすめ情報