- 題名: 親ページを閉じた時に子ページ(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で取得する方法はございますでしょうか?
ご回答お待ちしております。よろしくお願いいたします。