メイン画面から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で質問しましょう!

このQ&Aと関連する良く見られている質問

Qサブウィンドウからメインウィンドウにデータを送信する方法

宜しくお願いします。
メインウィンドウからリンクを貼り、そこをクリックしてサブウィンドウを出します。そのサブウィンドウに入力フォームを付けて、必要な情報を入力してもらい、送信ボタンを押すと、POSTで送信されて、元のメインウィンドウで送信内容が確認出来る様にしたいのですが、やり方が良くわかりません。
とある本を見て、『opener.closed』というのを使えば出来るかと思い試したのですが、URLをメインのウィンドウに送る事は出来ても、POSTのデータを送信する方法までわかりませんでした。
どなたかご教授の程、宜しくお願い致します。

Aベストアンサー

以下のような感じでどうでしょう?

(1)メインウィンドウに名前を付けておく。

<html>


<script type="text/javascript">
<!--
window.name="hoge"
//-->
</script>
</head>


(2)サブウィンドウで送信するときにtarget(=メインウィンドウのname)を指定する。
(送信したらサブウィンドウを閉じる)

<form action="~" method="post"
target="hoge"
onsubmit="window.close()"
>

Q別窓ウィンドウから親ウィンドウの操作でopener.location.hrefで親ウィンドウに渡せる文字数について

非常に困っています。良かったら教えて下さい。
サブウィンドウズを閉じたときに親ウィンドウにある値を
渡して飛ばしたいのですが、かなり項目数が多くて、
javascriptエラーになります。
渡せる文字数は、何文字いないとかいう規定はあるのですか?
教えて下さい。

もし、あるのであれば、代替案はありますか?

Aベストアンサー

サンプル作ってみた

---"main.html"---
<form onsubmit="
window.name='main';
window.open('sub.html', '_blank');
return false;
">
<input type="submit" value="sub">
</form>


---"sub.html"---
<form action="http://www.google.com/search" target="main" >
<input name="q" value="javascript">
<input type="button" value="検索" onclick="
this.form.submit();
window.close();
">
</form>

Qインフレームからのサイズ指定の別ウィンドウを出すにはどうしたら?

大変困っています。
インフレーム内から、リンクでもう一枚ブランクで
他のページを立ち上げたいのですが、
その際、サイズ指定で立ち上げたいのです。
いろいろと検索してみたのですが、
どうしても見つかりませんでした。
どのようにジャバスクリプトをかいたらよいのか
わからず困っております。どうかご教授願います~!

Aベストアンサー

インラインフレームで呼び出されるhtmlファイルにて

<A HREF=# onClick=window.open('aaa.html','_blank','width=200,height=100');>ここにリンクしたい文字や画像</A>

といった様に作れば良いと思います。

aaa.html  開きたいhtmlファイル名
_blank   新規ウィンドウ
width=200  横幅
height=100  高さ

Q子ウィンドウでウィンドウサイズ固定にしてtarget=

HPを作っていて親ウィンドウに↓のように
<script language="JavaScript">
<!--
function winopen(url){
win=window.open(url,"host","scrollbars=1,width=780,height=480");
}
//-->
</script>

~略~

<a href="dougu/keito.html" target="_blank" onClick="Javascript:winopen('dougu/keito.html');return false;"><img src="img/item-keito10.gif" width="50" height="38" border="0">

ウィンドウサイズを固定してtarget="_blank"で開いてさらにその子ウィンドウでも同じようにリンクを張って

<script language="JavaScript">
<!--
function winopen(url){
win=window.open(url,"host","scrollbars=1,width=780,height=480");
}
//-->
</script>

~略~

<a href="../wash.html" target="_blank" class="style1" onClick="Javascript:winopen('../wash.html');return false;">こちら</a>

とtarget="_blank"でウィンドウサイズを固定しして開きたいのですが同じウィンドウで開いてしまいます。
説明の仕方が分かりづらくてすみません。分からないようでしたら補足いたします。

HPを作っていて親ウィンドウに↓のように
<script language="JavaScript">
<!--
function winopen(url){
win=window.open(url,"host","scrollbars=1,width=780,height=480");
}
//-->
</script>

~略~

<a href="dougu/keito.html" target="_blank" onClick="Javascript:winopen('dougu/keito.html');return false;"><img src="img/item-keito10.gif" width="50" height="38" border="0">

ウィンドウサイズを固定してtarget="_blank"で開いてさらにその子ウィンドウでも同じように...続きを読む

Aベストアンサー

window.open(url,"host",~

というのは、「host」と名付けられたウィンドウに指定のURLを表示する、もし「host」が見つからなければ、新規に開いて「host」と名付ける、という意味になります。

なので、2度目に同じ名前が指定されているので、同じウィンドウが指定されます。

子ウィンドウの方は、

window.open(url,"host2",~

など別の名前にすればいいと思います。

Q別のサーバURLの子ウィンドウから親ウィンドウを制御したい。

親ウィンドウから、別のサーバURLの子ウィンドウを開き、開いた子ウィンドウから親ウィンドウの制御を行ないたいと考えています。どのようにすればできるでしょうか?
同一サーバ内であれば、子ウィンドウのスクリプトで、
opener.name.value="Nakai";
というように記述すればよいですが、別のサーバ上のスクリプトから実行すると。
「書き込みできません」
と表示されます。(ブラウザIE6,サーバTomcat3)
openerが使えないようであれば、ウィンドウ名を使用する方法などが無いか考えましたが、windowの取得方法ももわかりません。
よろしくお願いします。

Aベストアンサー

こんばんわぁ、Blackwinglsです。

JavaScriptではセキュリティーの関係で他サーバーを制御できません。

ではでは(@^^)/~~~


人気Q&Aランキング

おすすめ情報