- PR -

本末転倒 onContextMenu

1
投稿者投稿内容
yow2.0
会議室デビュー日: 2004/11/17
投稿数: 4
投稿日時: 2004-12-14 14:37
現在、onContextMenuでそのページ専用のメニューを作成しているのですが
従来の右クリック時にでてくる、「対象をファイルに保存」と同じものを追加したいのですが
記述方法がわかりません
よろしければご教授ください

<body onContextMenu=editmenu(rcmenu,info)>

別の処理で右クリックしたものがファイルへのリンクであるかどうかは判別していますので、単純にそれを「対象をファイルに保存」させたいのですが
現在は↓のような感じで処理しています
<%
Dim objStream
Dim strFilePath
Const adTypeBinary = 1

Response.AddHeader "content-disposition","attachment; filename=hoge.xls"

strFilePath = "[サーバー側のEXCELファイル物理パス]"

Set objStream = Server.CreateObject("ADODB.Stream")
objStream.Open
objStream.Type = adTypeBinary
objStream.LoadFromFile strFilePath

Response.BinaryWrite objStream.Read
objStream.Close
Set objStream = Nothing
%>

このやり方だと「開く」「保存」「キャンセル」と間に1ステップ入ってしまい、なおかつ「開く」を選択されると色々と困るので直接保存先選択のダイアログを開かせたいのです

よろしくお願いします

meltingpot
常連さん
会議室デビュー日: 2004/06/15
投稿数: 24
投稿日時: 2004-12-14 17:49
質問する会議室を間違えてますよ。
JavaScriptの会議室と間違える人は多いですが...
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2004-12-14 18:12
コモンダイアログを開いて、
その後にサーバと通信してダウンロードを行うActiveXを作成して
クライアントに実行させないと無理だと思います。

なぜ「開く」を選択すると困るのかわかりませんが、
アンカーに対してクリックの挙動を行う際のターゲットを
新しいwindowにしてやれば、
間違って「開く」を選択しても元画面が消えることもないです。



#どうしても込み入ったことしたいなら、
#専用ブラウザ作ればいいのに。。。と、いつも思いますけどね。
yow2.0
会議室デビュー日: 2004/11/17
投稿数: 4
投稿日時: 2004-12-14 20:24
>なぜ「開く」を選択すると困るのかわかりませんが、

私が聞きたいとこです(待て

結局ASPの方で
Content-Disposition: attachment; filename=fname.ext
という一文を加えて保存か開くか選択するダイアログを表示させています
で、開くを選択するとテンポラリに対象を保存して
test.docといファイル名の場合test[1].docというファイル名で開いてくれます

>#どうしても込み入ったことしたいなら、
>#専用ブラウザ作ればいいのに。。。と、いつも思いますけどね。

クライアント側は最大数千人規模を想定していますので全員にインストール作業をさせるということになるというのは駄目という理論のようです

2点目としては結局のところ割り当てられている作業時間がないに等しいのに無茶は言ってくる とそんなところですね

ご返答ありがとうございました
1

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