No.5ベストアンサー
- 回答日時:
何度も何度もすみません・・・
×ボタンでウインドウを閉じたときに、window.openで取得したウインドウオブジェクトWが消去されているのかもしれません。
test4.htmlのソースを以下のように変更してみてください。
ダミーページ(ウインドウ制御用) test4.html
<HTML>
<head>
<script language="javascript">
var W;
function NewWin() {
W = window.open("./test2.html","aaa","width=500,height=300,resizable=yes");
}
function CloseWin() {
if (window.W) {
window.W.close();
}
}
</script>
</head>
<body>
</body>
</HTML>
この回答への補足
返事が遅れてすみません。
試して見ましたが、閉じるを押しても閉じられませんでした。
環境はWinXP Pro SP2 IE6です。
No.6
- 回答日時:
うーん・・・どうしてでしょう?
現在のソースはNo2のソースに、test4.htmlのソースをNo5のものに変えただけのものでしょうか?
もしよろしければ、提示できる範囲で結構ですので、ソースを示していただくことは出来ないでしょうか?
よろしくお願いいたします。
No.4
- 回答日時:
すみません、私の環境ではエラーが出ません・・・
私の環境はXPsp1 IE6 とXPsp2IE6
です。
なんででしょうね?
お手数かけますが、No1とNo2のソースはフレーム以外でも若干変更しておりますので、すべてのソースをNo2から取り直して、もう一度試していただけないでしょうか?
それから、エラーが出るときの手順を書いて頂けるとうれしいです。
また、よろしければPCの環境を教えていただけないでしょうか?
よろしくお願いいたします。
No.2
- 回答日時:
閉じる動作でしたか・・・No1の方法ではどうしても一回開いてしまいますね。
ちょっと強引ですが、親画面Aのと同レベルの階層にダミーのフレームを用意しておいて、ウインドウを開く、閉じるといった動作をダミーフレームのJavaScriptで行うという手もあります。
例
フレーム階層
フレーム構成のHTML(testframe.html)
+main 親画面A(test.html)
-dummy ダミーページ(test4.html)
ダミーページに用意するJavaScript
NewWin() → 新規ウインドウ(test2.html)のオープン
CloseWin() → 開いたウインドウのクローズ
親画面Aから子画面Bの生成
parent.dummy.NewWin();
親画面Cから子画面Bの消去
parent.dummy.CloseWin();
以下ソース
フレーム生成のページ testframe.html
<HTML>
<frameset rows="100%, *" frameborder="no" border="0" framespacing="0">
<frame name="main" src="test.html">
<frame name="dummy" src="test4.html" scrolling="no">
</frameset>
</HTML>
ダミーページ(ウインドウ制御用) test4.html
<HTML>
<head>
<script language="javascript">
var W;
function NewWin() {
W = window.open("./test2.html","aaa","width=500,height=300,resizable=yes");
}
function CloseWin() {
window.W.close();
}
</script>
</head>
<body>
</body>
</HTML>
親画面A test.html
<HTML>
<body onLoad="parent.dummy.NewWin()">
<a href="test3.html">koko</a>
</body>
</HTML>
子画面B test2.html
<HTML>
<body>
テスト2
</body>
</HTML>
遷移後親画面C test3.html
<HTML>
<body>
テスト3
<br>
<input type="button" value="閉じる" onClick="parent.dummy.CloseWin()">
</body>
</HTML>
この回答への補足
サンプルを作っていただきありがとうございます。
早速動かそうと思ったのですが、
test3.htmlで閉じるボタンを押すと、
test4.htmlのCloseWin()でエラーになってしまいます。
どこかおかしいところがあるのでしょうか?
よろしくおねがいします。
No.1
- 回答日時:
ダミーでwindow.openをかましてあげれば出来ます。
以下の例では、
1.親画面Aのロード時に子画面Bを生成します。
2.親画面Aのkokoをクリックして、親画面をCへ遷移させます。
3.親画面Cで変更ボタンを押下すると、
3-1.window.open("","aaa")をダミーで呼び出します。
3-2.もともとあったaaaというウインドウの内容を変更させています。
例
親画面A test.html
<HTML>
<head>
<script language="javascript">
function NewWin() {
window.open("./test2.html","aaa","width=500,height=300,resizable=yes");
}
</script>
</head>
<body onLoad="NewWin()">
<a href="test3.html">koko</a>
</body>
</HTML>
子画面B test2.html
<HTML>
<body>
テスト2
</body>
</HTML>
遷移後親画面C test3.html
<HTML>
<head>
<script language="javascript">
function change() {
W = window.open("","aaa"); //ダミーでaaaという名前のウィンドウを生成します
window.W.document.write("テスト2は変更されました");
}
</script>
</head>
<body>
テスト3
<br>
<input type="button" value="変更" onClick="change()">
</body>
</HTML>
この回答への補足
ご回答ありがとうございます。
私も、この方法を見つけてやってみたのですが、
今回やろうとしているのが、遷移後の画面Cにて、子画面を閉じる処理を行いたいのですが、画面Cで、ボタンを押す前に、子画面Bが閉じられている場合に、画面が開いた直後に閉じるという現象が発生してしまうので、どうにかこれを回避したいと思っているので、いい方法があればご教授のほどよろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) Pythonによる物理の斜方投射の位置座標表示について 2 2023/06/05 12:46
- Mac OS macが液晶割れしたのでデータを保護したいです 2 2023/03/27 18:36
- JavaScript jQueryでのレスポンシブが綺麗に動かない 3 2022/06/21 11:08
- iOS デスクトップの画面が Prt Sc 出来ない。 1 2022/05/09 15:57
- その他(ソフトウェア) IrfanView で画像のスクロール?できますか 1 2022/08/31 13:57
- Y!mobile(ワイモバイル) iPhoneからAndroidへ機種変。oppoReno7という機種ですが、データ移行をしようとする 2 2023/06/10 21:56
- 写真・ビデオ iPhone12を使っていたのですが液晶が壊れてしまいました、画面も変な線が縦に入ってしまいロック画 1 2023/01/10 02:01
- Windows 10 マルチディスプレイ【モニター2つ並べて】プリントスクリーンを片方のだけ取るにはどうする? 3 2022/11/27 02:46
- PHP 掲示板のセキュリティについてアドバイスお願い致します 1 2023/08/11 20:44
- Java Javaプログラミングの質問になります。 ボタンを押下した時に画面遷移して 画面から戻ってきた時のi 1 2023/06/26 07:50
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
子窓で送信したら、親ウィンド...
-
指定時間になったら、WEBサイト...
-
window.open _self でとんでく...
-
小窓を表示させたい
-
htmlでテーブル内にテキストボ...
-
CSSのtransform: translate(-50...
-
エクセルでサイズ指定でPOP...
-
aタグに直接style=""で:hoverを...
-
エクセルでサイズに合ったもの...
-
ホームページビルダーで表の列...
-
Excel で等間隔で縦線を引きた...
-
Excel セルの幅が合わない
-
エクセル 画面表示拡大率によ...
-
Excelで文字の幅を変える方法
-
テーブル内の一部のみ線を変更...
-
敬語
-
<table>の<thead>を固定したい。
-
CSSの設定
-
CSSでh1とその下の文字との行間...
-
指導要録のエクセルシートを作...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
指定時間になったら、WEBサイト...
-
window.close()で閉じられない
-
javascriptでタイトルバーを非...
-
HTMLでブラウザを終了させる方法
-
window.openした時、親ウィンド...
-
サブウインドウを開くときのフ...
-
location.hrefの使用条件について
-
『入力文字列 + .html』 に...
-
小窓を表示させたい
-
プルダウンメニューからインラ...
-
【続】 ポップアップ表示の後の...
-
location.hrefで別窓にリンクを...
-
リンクを張り、別窓を表示され...
-
Javascriptを使用したサムネイ...
-
showModalDialogで動的にページ...
-
JavaScriptで画像を横移動
-
window.open _self でとんでく...
-
自動的に小窓を開く
-
トップページをもうひとつ作る...
-
子Windowの操作(親Window遷移後)
おすすめ情報