- 題名: 親ページを閉じた時に子ページ(PDF)を閉じる
- 日時: 2011/11/07 15:10:26
- ID: 29337
- この記事の返信元:
- (なし)
- この記事への返信:
- [29342] Re[1]: 親ページを閉じた時に子ページ(PDF)を閉じる2011/11/08 19:57:51
- ツリーを表示
■No29337に返信(PGさんの記事) 現象が確認されたブラウザはIEでしょうか。IE9でPDFファイルを開いたときに同じ 現象が起きることを確認しました。 window.open("/ファイル.pdf", childWindowCount); mywin = window.open("/ファイル.pdf", childWindowCount); childWindows[childWindowCount - 1] = mywin; 上記のようにPDFファイルを同じウィンドウ名で2回開くとclosedプロパティがfalse になりました。異なるPDFファイルでもclosedプロパティはfalseになりました。 ユーザーが要求するPDFファイルとは別にclosedプロパティをfalseにするための軽量 なPDFファイルを用意するという手段が考えられます。しかし、PDFファイルが ブラウザ内に表示されないようAcrobatで設定されているばあい、PDFファイルの ダウンロードダイアログが2回表示されます。利用する人はすこし不自然に感じる だろうとそのように思いました。 closedプロパティを参照したあとにcloseメソッドを呼ぶという処理の流れにこだわ らなくてもよろしければ、以下の方法で子ページを閉じることができました。 var childWindowCount = 0; var childWindows = new Array(); //○子画面を開く childWindowCount++; mywin = window.open("/ファイル.pdf", childWindowCount); childWindows[childWindowCount - 1] = childWindowCount; //○親画面を閉じる //子画面を全て閉じる for (var i = 0; i < childWindowCount; i++) { var closeWindow = window.open("", childWindows[i]); closeWindow.close(); } //親画面を閉じる (window.open('', '_self').opener = window).close();
分類:[ASP.NET]
親ページを閉じた時に子ページ(PDF)を閉じる制御を加えようとしておりますが、
子ページ(PDF)を閉じることができなく困っております。
下記ソースの抜粋↓↓↓
//変数宣言
var childWindowCount = 0;
var childWindows = new Array();
・
・
・
○子画面を開く
childWindowCount++;
mywin = window.open("/ファイル.pdf", childWindowCount);
childWindows[childWindowCount - 1] = mywin;
○親画面を閉じる
//子画面を全て閉じる
for (var i = 0; i < childWindowCount; i++) {
var closeWindow = childWindows[i];
if (!closeWindow.closed) {
(closeWindow.open('', '_self').opener = closeWindow).close();
}
}
//親画面を閉じる
(window.open('', '_self').opener = window).close();
※上記を行った時に、closeWindow.closedの結果がTrueとなってしまい、
PDFを表示しているページは既に閉じられたと判断されてしまいます。
上記を回避するには、PDFを表示する専用のページを用意し、FrameにPDFファイルを表示し、
Acrobatの表示設定を「ブラウザ内に表示」にしておけばとりあえずは回避できそうな気がします。
ですが、Acrobat(クライアントのアプリ)の表示設定が絡みますので、上記の回避策の対応は避けたいです。
closeWindow.closedの結果をFalseで取得する方法はございますでしょうか?
ご回答お待ちしております。よろしくお願いいたします。