プロが教える店舗&オフィスのセキュリティ対策術

はじめまして。
標記の件についてですが、画面を閉じる方法が分かりませんのでどなたか教えていただければと思います。過去ログも検索しましたが、うまく見つけられませんでした。

【1】 希望の動作
親画面を閉じるとき(onunloadで)、PDFファイルを表示している子画面も閉じます。

【2】 現状
子画面がPDFファイルでない場合(例えば、YahooなどのWebページ等)は希望通りの動作ができますが、子画面の遷移先がPDFファイルになると制御ができていません。また、Excel等の他のアプリケーションソフトのファイルを指定するとこれとは異なるエラーが表示されるので、今回はそれらは対象外としていただいて結構です。

【3】実装方法
オープンした子画面を変数で受けて、そのオブジェクトに対してクローズ処理を行っています。

JavaScriptのclose()関数は、ブラウザのなかでアプリケーションソフトが起動している場合はうまくいかないのでしょうか。それとも、たまたまPDFファイルの特性がこうさせているのでしょうか。
以上につきまして、よろしくお願い致します。ソースが必要であれば掲載します(今回は字数オーバーでした)。

A 回答 (1件)

こんにちわ。



ざっと調べてみたところ、PDFを開いた子ウィンドウの.closedプロパティの値がtrueになってしまうようです。
(内部的に「既に閉じられた状態になっている」)

若干面倒かもしれませんが、子ウィンドウをフレーム分割してそのフレーム内にPDFを表示させるような形をとってはいかがでしょうか?

例)(かなり極端な例ですので・・・)
<!-- test.html --->
<html>
<body onunload="if(win){win.close();}">

<script>
var win;
win = window.open("./view.html","win_c");
</script>
</body>
</html>

<!-- view.html --->
<html>
<frameset cols="0,*">
<frame name="f1">
<frame name="f2" src="kotaeru.pdf">
</frameset>
</html>


※Acrobatの表示設定を「ブラウザ内に表示」にしている前提です。
 逆にAcrobatの表示設定で「ブラウザ内に表示」を外した場合に、真っ白なウィンドウが残ってしまいますけど。
    • good
    • 0
この回答へのお礼

Math Mathさん

とても丁寧な回答をいただきましたのに、この1ヶ月出張でチェックできない環境にあり、お礼が大変遅くなりまして失礼致しました。

教えていただいた方法で見た目には全然分からないようにバッチリできました!

いくら調べても全然理由すら分かりませんでしたので、本当に感謝しています。

これからもまた何かありましたらよろしくお願い致します!

お礼日時:2005/11/16 09:27

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