アプリ版:「スタンプのみでお礼する」機能のリリースについて

メイン画面からjavaScriptを使用して別ウィンドウを立ち上げ、
別ウィンドウ側でresizeToを利用してサイズ指定をしています。

ユーザによって希望する画面サイズが異なるため、
ウィンドウを立ち上げるたびにサイズを手動で変更するのが
面倒であると苦情を受けています。

別ウィンドウを起動するときは
resizeToがかかるのは良いのですが、
再度メイン画面側から実行時には
resizeToがかからないようにしたいと考えています。

☆resize有効
「一度も画面の起動を行なっていない時」or
「一度起動された画面がユーザ側で削除された時」
☆resize無効
「既に起動された画面が残っている時」

このような切替えが可能であるかどうかお教え頂けますか?
よろしくお願いします。

A 回答 (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 の時は、フォーカスが当たるだけです。)
    • good
    • 0
この回答へのお礼

ありがとうございます。
自分で質問後にすぐ回答が解かってしまいました。
やはり一度言葉で書いてみるというのが解決策ですね。

if文に関しては回答頂いた通りです。
sizeの設定だけ子ウィンドウ側でなく
親ウィンドウ側から処理させていただきました。

ありがとうございました。

お礼日時:2002/02/20 16:26

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