プロが教えるわが家の防犯対策術!

あるページにリンクが貼り付けてあります。
このリンクをクリックすると、
DB(SQL Server)からPDFファイルを取得し
別画面で表示するようにしたいと思っています。

ソースは下記のように書きました。
画面側(XXX.asp)
<a href="../common/AAAAA.asp" target="_blank"><img src="images/banner.jpg" border="0" /></a>

呼び出され側(AAAAA.asp)
Dim st
Dim imgdata
Dim rs
Dim strSQL
Dim column

strSQL = "SELECT ファイル "
strSQL = strSQL & "FROM 画像 "
strSQL = strSQL & "WHERE ファイル名 = 'ファイル名' "
'レコードセット
Set rs = querySql( conn, strSQL )
    imgdata = rs.fields("ファイル").value
Response.ContentType = "application/pdf"
Call Response.AddHeader("Content-Transfer-Encoding", "binary")
Call Response.AddHeader("Cache-Control", "no-cache")
Call Response.AddHeader("Pragma", "no-cache")
Call Response.BinaryWrite(imgdata)


このようにすると画面には表示されるのですが
IE7で表示したときのタブの部分は
どうやったら指定できるのでしょうか?
「PDFファイル」と表示させたいです。

よろしくお願いします。

A 回答 (1件)

新規ウィンドウではなく、新しいタブで上記ASPを実行したい場合、


どうすれば良いか?って質問ですか?

もし、そうであれば、できない というのが回答になります。
「新しいタブで開く」のかは、あくまでそのサイトを見ている閲覧者の判断に委ねられているため、ASPやHTMLで制御することはできません。
そのため、IE7の新しいタブを制御してはいけないというのが正論です。

<a href="../common/AAAAA.asp" target="_blank">
のように新規ウィンドウで起動するものは閲覧者の判断なくできるのに・・・という意見もおありでしょうが、基本は、新しいウィンドウを作成しなくても良いようなWebアプリケーションをASPで作成するのが本来のあるべき姿です。
W3CのWCAG(ウェブコンテンツアクセシビリティガイドライン)でも
http://www.zspc.com/documents/wcag10/
「新しいウインドウをターゲットとするようなフレームを使用しないようにしてください。」と記載してある通り、新しいウィンドウを開くことをユーザに周知しない限り、プログラム作成者の意図で新規ウィンドウを立ち上げるべきではないということが言えるかと思います。

新しいウィンドウや新しいタブを立ち上げてPDF表示するプログラムをASPで作ることに否定はしませんが、そもそもの考え方/設計思想が間違っていますので、もう一度、その辺りはご検討いただきたいと思います。
(PDFファイルを生成した後、リダイレクトしてダウンロードさせる方が設計理論としては正しいです)

参考URL:http://www.zspc.com/documents/wcag10/
    • good
    • 0
この回答へのお礼

次回からは「リダイレクトしてダウンロードさせる」で設計したいとおもいます。

お礼日時:2009/05/25 09:41

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

このQ&Aを見た人はこんなQ&Aも見ています