- PR -

JavaScriptのwindow.openが別ウィンドウにならない

投稿者投稿内容
ごん太
大ベテラン
会議室デビュー日: 2002/07/30
投稿数: 182
お住まい・勤務地: 森の中
投稿日時: 2008-12-10 11:45
現在ASP.NET2008にて開発をしています。
ボタンクリックで小窓を出そうと思うのですが、別ウィンドウではなく、現在表示されているウィンドウに表示されてしまいます。

window.open("LinkUrl","window1","width=400,height=200,menubar=no,status=no,scrollbars=no")

例えば、メインWEBフォーム(Frameウィンドウ)をA、上記Scriptを表記したボタンを設置したWEBフォームをBとし、別ウィンドウ(小窓)をCとした場合、
Bから実行した場合はCを別ウィンドウで表示できるのですが、
AからBを呼び出し実行した場合はCのウィンドウは別画面ではなく、Bのウィンドウに表示されてしまいます。
※Aを呼び出す際に上記Scriptを一度使用しているのですが、これが何か影響しているのでしょうか?


なぜこのようになるのか解る方がいらっしゃいましたらご教授下さい。
King
ぬし
会議室デビュー日: 2008/06/20
投稿数: 284
投稿日時: 2008-12-10 11:54
第2引数のウインドウ名が「現在表示されているウィンドウ」と一緒なんじゃないでしょうか。
Toshi
ベテラン
会議室デビュー日: 2007/09/18
投稿数: 68
お住まい・勤務地: 関東のどっか
投稿日時: 2008-12-10 11:54
ウィンドウの名称が影響していることがあります。
以下のようにしてみてもだめでしょうか?


コード:
window.open("LinkUrl","_blank","width=400,height=200,menubar=no,status=no,scrollbars=no") 


ごん太
大ベテラン
会議室デビュー日: 2002/07/30
投稿数: 182
お住まい・勤務地: 森の中
投稿日時: 2008-12-10 12:00
KingさんToshiさん返答ありがとうございます。
Kingさんがおっしゃる通り、第2引数のウィンドウ名が最初に開いたウィンドウ名と同じでした。
その部分を修正する事で解決致しました。
単純なミスですね。。。
ありがとうございました。
ごん太
大ベテラン
会議室デビュー日: 2002/07/30
投稿数: 182
お住まい・勤務地: 森の中
投稿日時: 2008-12-10 17:56
先ほどの件は解決したのですが、次の問題が出てしまいました。

例えば親ウィンドウから子ウィンドウを表示させ、その子ウィンドウを閉じた時に親ウィンドウ側で子ウィンドウを閉じたと言う判断をする方法はあるでしょうか?

子ウィンドウを閉じる処理(window.close())の手前でSession変数(フラグ)を取得し、親ウィンドウにフォーカスが戻った際に、その変数を判断しリロードさせる
(子ウィンドウを出現させ、閉じた時のみ処理をしたい為)
なども考えたのですが、JavaScript内でSession変数に値を渡す方法及び親ウィンドウにフォーカスが戻ったと言う判断が分からずです。。


べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2008-12-11 00:14
閉じるときに親windowの関数を呼び出せば解決しませんか?
window.opener.関数()
mio
ぬし
会議室デビュー日: 2005/08/25
投稿数: 734
お住まい・勤務地: 神奈川県
投稿日時: 2008-12-11 01:42
閉じたときでなくていいなら、closedを見れば良いですね。
ごん太
大ベテラン
会議室デビュー日: 2002/07/30
投稿数: 182
お住まい・勤務地: 森の中
投稿日時: 2008-12-11 09:45
mioさんべるさんありがとうございます。
べるさんのwindow.openerを参考に

【親ウィンドウ】
<script type="text/javascript">
function LoadFunction(){
やりたい処理;
}
</script>

【子ウィンドウ】
window.opener.LoadFunction();
window.opener = null;
window.close();

で対応できそうです。

また、JavaScriptにて子ウィンドウが開いている時に親ウィンドウをクリックしたらアラートメッセージを出すには、どうすればよいでしょうか?
最初はshowModalDialogにて対応していたのですが、他に方法はないでしょうか?


[ メッセージ編集済み 編集者: ごん太 編集日時 2008-12-11 10:17 ]

スキルアップ/キャリアアップ(JOB@IT)