マンガでよめる痔のこと・薬のこと

http://www.tagindex.com/javascript/window/sub_to …

こちらのように子ウィンドウから親ウィンドウを操作していますが
子ウィンドウから親ウィンドウを閉じて、子ウィンドウだけ残す方法がありましたら、教えて下さい。

よろしくお願いします。

A 回答 (3件)

できます。



親ウィンドウの方のHTMLの子ウィンドウを表示スクリプトの中に
window.opener="main";
を記述してください。

これで子ウィンドウを表示後に子ウィンドウから
window.opener.close();
で親ウィンドウを閉じると、警告メッセージを表示せず閉じてくれます。
    • good
    • 1
この回答へのお礼

window.opener="main";で警告メッセージを表示せず閉じてくれました。ありがとうございます!

お礼日時:2007/11/21 16:44

window.opener.close()


で親ウィンドウが閉じると思います。
警告はされますが。

この回答への補足

ありがとうございます、親ウィンドウが閉じました。
警告なしの設定というのは無理ですよね?

補足日時:2007/11/21 10:09
    • good
    • 0

できません。

できないようになっています。

この回答への補足

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

補足日時:2007/11/21 10:11
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

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

Q子ウィンドウを開くときに、親ウィンドウ(自分)を警告なしで閉じる。

http://oshiete1.goo.ne.jp/kotaeru.php3?q=805336
の続きというか、同じことなのですが、
以下のJavaScriptで、子ウィンドウが開かれるのですが、この際に開いた親ウィンドウを閉じたいのですが、普通に閉じると警告が出てしまいます。
警告なしで、子ウィンドウを開き、親ウィンドウを閉じる方法があれば、教えてください。

<script language="JavaScript"><!--
function MenuWindow(){
var bname = navigator.appName;
var bversion = navigator.appVersion;
var spchr = ";";
var bverS = bversion.split(spchr);
var blsr = bverS[1];
var spchr = " ";
var btype = blsr.split(spchr);
var bcat = btype[1], bver = btype[2];
if ((bcat.indexOf("MSIE")<0)||(bver<5.0)) {
res = window.alert("本プログラムは Internet Explore 5.0 以降の"+
"ブラウザ以外では動作しません。");
window.close();
} else {
//location.href="menu.html";
var indexW;
var swidth=screen.availWidth;
var sheight=screen.availHeight;
var wwidth=swidth*1.0;
var leftpos=(swidth-wwidth);
var wheight=sheight*1.0;
var toppos=(sheight-wheight);
window.resizeTo(wwidth,wheight);
window.moveTo(leftpos,toppos);
window.focus();
indexW = window.open("menu.html","",'resizable=yes,top=0,left=0');
indexW.resizeTo(swidth, sheight);

//location.href="#";
}
return true;
}
//--></script>
</head>
<body onLoad="MenuWindow()">

</body>

http://oshiete1.goo.ne.jp/kotaeru.php3?q=805336
の続きというか、同じことなのですが、
以下のJavaScriptで、子ウィンドウが開かれるのですが、この際に開いた親ウィンドウを閉じたいのですが、普通に閉じると警告が出てしまいます。
警告なしで、子ウィンドウを開き、親ウィンドウを閉じる方法があれば、教えてください。

<script language="JavaScript"><!--
function MenuWindow(){
var bname = navigator.appName;
var bversion = navigator.appVersion;
var spchr = ";";
var bverS = bversio...続きを読む

Aベストアンサー

window.open() で開かれたウィンドウじゃないウィンドウを window.close() しようとすると、警告が出ます。

実は、これには穴があって...

> window.close();

の箇所を、以下のようにちょっとおまじないを入れると

  w = window.open("","_top")
  w.opener = window
  w.close()


ね、ブラウザは、勘違いしちゃうんですよね。

Q子→親ウインドウへデータを受け渡し、子ウィンドウを閉じる。

このような処理はできないでしょうか?

子ウィンドウはコード番号の検索用。該当のコードのリンクをクリックすると、そのコード番号を親ウィンドウのテキストボックスへ落とし込む。そのタイミングで、子ウィンドウは閉じる。
子→親ウインドウへのデータの受け渡しと、子ウィンドウのクローズを同時に行うようなイメージです。
よろしくお願いします。

Aベストアンサー

こんにちは

【親ウィンドウ】
<form action="xxx.php" method="POST" name="myForm">
顧客コード
<input type="text" name="kokyaku_cd" size="10">
<a href="javascript:void(0)" onClick="window.open('search.html','search','menubar=no,height=400,width=300');">検索</a>
</form>

【子ウィンドウ】
<script language="javascript"><!--
function ich(n) {
window.opener.document.myForm.kokyaku_cd.value=n;
window.close();
}
//--></script>

<table>
<tr>
<th>顧客コード</th>
<th>顧客名称</th>
</tr>
<tr>
<td><a href="javascript:ich('ABC商店')">0001</a></td>
<td>ABC商店</td>
</tr>
<tr>
<td><a href="javascript:ich('DEF商店')">0002</a></td>
<td>DEF商店</td>
</tr>
</table>

もしくはNo.1様の言うようにidを設定して
【親画面】
<input type="text" name="kokyaku_cd" size="10" id="kokyaku_cd">

【子画面 function内】
window.opener.document.getElementById("kokyaku_cd").value=n;

でできると思います

こんにちは

【親ウィンドウ】
<form action="xxx.php" method="POST" name="myForm">
顧客コード
<input type="text" name="kokyaku_cd" size="10">
<a href="javascript:void(0)" onClick="window.open('search.html','search','menubar=no,height=400,width=300');">検索</a>
</form>

【子ウィンドウ】
<script language="javascript"><!--
function ich(n) {
window.opener.document.myForm.kokyaku_cd.value=n;
window.close();
}
//--></script>

<table>
<tr>
<th>顧客コード</th>
<t...続きを読む

Q子ウインドウを閉じて 親ウインドウを更新

初歩的なことなのかもしれませんが、ご教授いただけると助かります。

やりたい動作は、

親ウインドウから<a href="" target=_blank>で
子ウインドウを開きます。

子ウインドウで処理を行った後、

----ここからの動作がわかりません-----

子ウインドウ上のボタンかアンカータグで

親を再読み込み
子を閉じる
親にフォーカス

こんな動作をJAVASCRIPTで実現可能でしょうか?
結果的に、子が閉じられ、親が再読み込みされた状態でフォーカスがあたるようにできれば最高です。

暇なときでかまいませんので、どうぞよろしくお願いいたします。

Aベストアンサー

こんな感じでいいかと思います
------------------------------
<script type="text/javascript">
<!--
function p_reload(){
var pwin=window.opener;
pwin.location.reload();
pwin.focus();
window.close();
}
//-->
</script>

<button type="button" onclick="p_reload()">親を更新して閉じる</button>

Q親ウィンドウから開いた子ウィンドウをまとめて閉じるには?

親ウィンドウから複数のサブウィンドウを開いたとします。親ウィンドウを閉じる際に、開いているサブウィンドウを全て閉じたいと思っています。

開いたサブウィンドウのwindowオブジェクトを控えておいて、親ウィンドウのunloadで順番に閉じていけばできますが、イマイチかっこいい処理ではないので、一括してcloseできる処理を考えているところです。

なにかいい方法はないでしょうか?

Aベストアンサー

親ウィンドウが開いた子ウィンドウを一括で閉じるには、
子ウィンドウの一覧を把握していなくてはなりません。

ですが、いちいち子ウィンドウの変数を作成していくのは
面倒極まりないので、以下の手順で一括処理を行えます。

0)グローバル変数で、配列を宣言する

******ここは複数回の可能性あり*******
1)子ウィンドウを開く
2)子ウィンドウハンドルを配列に入れる
***********************************

onUnload時
1)子ウィンドウハンドルを参照し、閉じられていないかチェック
2)子ウィンドウハンドルに対して close()メソッドを実行


一応、IE5上で動作確認したソースもあるのですが、
ご自分でお考えになる方が力になりますので。
どうしてもできないと言う時は、改めてソースを開示いたしましょう。

Q子ウィンドウの存在確認

子ウィンドウが開いていない場合にのみ子ウィンドウを開くような下記の処理があるとします。

function OpenSubWindow()
{
if(!w.closed()){
alert('閉じろ!');
}else{
w = window.open("a.html","sub","resizable=no,scrollbars=no");
}
}

この場合、当然のことですが、変数wはelseの中で初めて初期化されるため、ifの条件でオブジェクトが存在しないことによりエラーが発生します。

でも、"sub"というname属性のウィンドウが開いているかどうかを確認したいのですが、どうすればよいのでしょうか?wを初期化する方法が何かあるのでしょうか?それとも、subウィンドウのopen/closeの状態を管理するロジックを作りこまないといけないのでしょうか?

Aベストアンサー

細かなロジックを考える必要はありませんよ。
w がオブジェクトかどうか分からない時点で w.closed を評価するのがマズイだけですから、評価の順番を変えればいいんです。

var w;
function OpenSubWindow() {
  if (!w || w.closed)
    w = window.open("a.html", "sub", "resizable=no,scrollbars=no");
  else
    alert("閉じろ!");
}

ちなみに closed はメソッドではなくプロパティですので、w.closed() ではエラーとなります。
また、既に開いているときの処理は
  w.focus();
とすれば子ウィンドウがアクティブになるのでオススメです。

Q子ウィンドウの「閉じる(×)」で親ウィンドウも一緒に閉じる方法

タイトル通り、親ウィンドウと、子ウィンドウがあり、子ウィンドウの「×」でウィンドウを閉じた場合に、親ウィンドウも閉じることはできるのでしょうか。
JavaScriptで「閉じる」ボタンをつけて行うことは、可能なのですが、ウィンドウの「×」はどのように処理したらよいのかわかりません。
ご存知の方がいましたら、よろしくお願いしたします。

Aベストアンサー

子ウィンドウに親ウィンドウ側から別のページを読み出したり、あるいは子ウィンドウ内でページを移動・更新したりすることがないのであれば、window.onunloadのイベントを拾って親ウィンドウを閉じる処理を入れておくのが良いのではないかと思います。
window.onunloadは、現在表示されているページが、ページ移動・更新・ウィンドウを閉じる動作などで破棄された時を拾いますので、子ウィンドウを閉じた時に親ウィンドウを閉じるようにもできると思います。
その場合は、子ウィンドウ側のソースに、以下のソースを追加すれば実現できます。

<script type="text/javascript"><!--
function parentclose(){
if (opener){
opener.close();
}
}
window.onunload=parentclose;
//-->
</script>

ただし、先にも書いたように、子ウィンドウを再利用して別のページを読み出したり、あるいは子ウィンドウ内のコンテンツで更新・別ページへの移動ができる場合は、それらの動作を実行された時にも、その現在表示されているページが破棄されたことを検知して親ウィンドウを閉じようとします。 そういった動作を含むサイト設計をしている場合には、この方法は使えないでしょう。
また、親ウィンドウとなるウィンドウがスクリプトなどで開かれたウィンドウではない場合(ユーザーが任意で開いたウィンドウの場合)、IEではそのウィンドウをスクリプトから閉じようとしていることの警告ダイアログが出ますし、Netscape7ではその動作自体をセキュリティエラーとして実行しないようになっています。 状況によっては、実装しても思い通りの動作にならない可能性もあるかもしれません。

参考になれば幸いです。

子ウィンドウに親ウィンドウ側から別のページを読み出したり、あるいは子ウィンドウ内でページを移動・更新したりすることがないのであれば、window.onunloadのイベントを拾って親ウィンドウを閉じる処理を入れておくのが良いのではないかと思います。
window.onunloadは、現在表示されているページが、ページ移動・更新・ウィンドウを閉じる動作などで破棄された時を拾いますので、子ウィンドウを閉じた時に親ウィンドウを閉じるようにもできると思います。
その場合は、子ウィンドウ側のソースに、以下のソー...続きを読む

Qwindow.close()で閉じられない

教えていただけますか?

インターネット上のサンプルを参考に
押したらウインドウを閉じるボタンを作ったのですが、
うまく機能しません。
サーバーはレンタルサーバーです

どの様にしたら良いでしょうか?
インターネット上のサンプルでは閉じられました。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>無題ドキュメント</title>
</head>

<body>
<form>
<INPUT type="button" value="閉じる" onClick="window.close()">
<input type="button" value="閉じる" onClick="close()">
</form>
<A href="JavaScript:window.close()">閉じる</A>

</body>
</html>

教えていただけますか?

インターネット上のサンプルを参考に
押したらウインドウを閉じるボタンを作ったのですが、
うまく機能しません。
サーバーはレンタルサーバーです

どの様にしたら良いでしょうか?
インターネット上のサンプルでは閉じられました。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/htm...続きを読む

Aベストアンサー

直接URLを指定したり、通常のリンクで開いたページはJavaScriptのwindow.close()で閉じることはできません(※ブラウザによって動作は異なりますが…)。
一般的には<a href="..." target="_blank">...</a>やJavaScriptを使用して開いたページでwindow.close()を使用します。

以下のようなwindow.close()を使用したHTMLファイルを作成して、

----------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "​http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">​
<html xmlns="​http://www.w3.org/1999/xhtml">​
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>無題ドキュメント</title>
</head>
<body>
<button onclick="window.close()">閉じる</button>
<br/>
<a href="#" onclick="window.close();">閉じる</a>
</body>
</html>
----------

これを別のHTMLから

----------
<!-- target="_blank"で開く -->
<a href="sample.html" target="_blank">開く</a>

<!-- JavaScriptで開く -->
<a href="#" onclick="openWindow('sample.html', 'mywindow')">開く</a>
<script type="text/javascript">
<!--
function openWindow(url, name) {
window.open(url, name, "width=400, height=300, menubar=no, toolbar=no, scrollbars=yes");
}
//-->
</script>
----------

のようにして開けばwindow.close()が動作すると思います。

直接URLを指定したり、通常のリンクで開いたページはJavaScriptのwindow.close()で閉じることはできません(※ブラウザによって動作は異なりますが…)。
一般的には<a href="..." target="_blank">...</a>やJavaScriptを使用して開いたページでwindow.close()を使用します。

以下のようなwindow.close()を使用したHTMLファイルを作成して、

----------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "​http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">​
<html xmlns="​http:/...続きを読む

Q特定のウィンドウ名を持つウィンドウの有無を判別

お世話になります。

現在、以下のスクリプトでPageA.htmlのボタンをクリックすると
新ウィンドウを開きPageB.jspを表示し、PageA.htmlは閉じます。
/* PageA.html */
function submitPageB(){
// "WindowB"が既に存在する場合は閉じる
var dummy = window.open("","WindowB","");
dummy.close();

// 待ち受けページを開く
var win = window.open("NowLoading.html","WindowB","width=800,height=600,scrollbars=no,resizable=no");

// WindowBにpost形式でパラメータ送信
with(window.document.formA){
action="PageB.jsp";
method="post";
target="WindowB";
submit();
}

//PageA.htmlを閉じる
window.close();
}

これを"WindowB"が存在するか判別して
"WindowB"がなければそのまま開く、
"WindowB"があればconfirmで新たに開くか開かないかを
選択させるようにしたいのですが、
"WindowB"というウィンドウ名のウィンドウを
取得する方法がわからないため実現できません。

var blWin = true;//※ここで"WindowB"が存在するかどうかを取得したい

if(!blWin || confirm("既に開いています。新たに開きますか?")){
submitPageB();
}

特定のウィンドウ名のウィンドウの有無を知る方法、
あるいは上記のことを実現させるよい案はないでしょうか?

よろしくお願いします。

お世話になります。

現在、以下のスクリプトでPageA.htmlのボタンをクリックすると
新ウィンドウを開きPageB.jspを表示し、PageA.htmlは閉じます。
/* PageA.html */
function submitPageB(){
// "WindowB"が既に存在する場合は閉じる
var dummy = window.open("","WindowB","");
dummy.close();

// 待ち受けページを開く
var win = window.open("NowLoading.html","WindowB","width=800,height=600,scrollbars=no,resizable=no");

// WindowBにpost形式でパラメータ送信
with(window.document.f...続きを読む

Aベストアンサー

できないと思います。

Qopenerは使えないのでしょうか?

以下の操作をした際に親ウインドウの情報を取得できず困っています。
1.親ウインドウでサブウインドウを開く
2.サブウインドウのボタン押下で親ウインドウのlocationを変更する
3.サブウインドウから「window.opener」を使おうとすると、object自体は存在するがnameやdocumentが取得できない

サブウインドウが開いている間に親ウインドウを変更するとopenerは情報を失うのでしょうか?

やりたいことはサブウインドウから親ウインドウのアドレスを変更し、hiddenに値をセットしたいのですが、対応策はありますでしょうか?

よろしくお願いします。

Aベストアンサー

隠しフレームを用意します。
親ウインドウを開く際、隠しフレームのjavascriptから開くようにします。
子ウインドウも開く際、隠しフレームのjavascriptから開くようにします。
子から親ウインドウを更新する場合は、隠しフレームのjavascriptで更新をかけます。
また、hiddenに値を入れる際にも隠しフレームのjavascriptで、、。
こんな感じでやれば、出来ると思います。

ちなみに隠しフレームって、0ピクセルのフレームの事です。

QSELECTで1件のみ取得するには?

こんにちわ。
いまORACLE9iを使用している者です。

ACCESSでは
SELECT TOP 1 項目名 FROM テーブル名
ORDER BY 項目名;
で並べ替えたデータ群のうち,先頭の1件だけを
取ることができますが,
ORACLEでそのような機能(SQL)はあるでしょうか?
教えてください。
よろしくお願いします。

Aベストアンサー

order by と rownum を併用する場合は注意が必要です。

[tbl01]
cola | colb
------------
1000 | aaaa
1001 | bbbb

というデータがある場合、
select cola from tbl01 where rownum < 1 order by cola desc;
とすると、「1001」ではなく、「1000」が返されます。
これは、order by の前に rownum < 1 が適用されてしまうからです。

解決するには、
select aaa from (select cola aaa from tbl01 order by cola desc) where rownum = 1;
とすれば良いです。


人気Q&Aランキング