1

リクエストから「html」プロパティを取得し、それを呼び出したものに返すashxハンドラーがあります。Content-Disposition も添付ファイルとして設定しています。

ページを直接呼び出すと期待どおりに機能し、[名前を付けて保存] ダイアログでダウンロードが強制されます。

私が立ち往生しているのはこれです:私はjavascript(jQuery)からこれを行う必要があります。div のコンテンツを投稿し、さらに処理を行います。

これがどのように行われるかについて、誰かが私にいくつかの指針を教えてもらえますか?

どうもありがとう。

4

1 に答える 1

1

私は(実際、そうします:-))隠しフィールドを持つフォームを作成し、divの内容をフィールドにコピーしてから、フォームを隠し(display: none)iframeに送信します。

ページに非表示の iframe を含める:

<iframe name="formTarget" src="blank.html" style="display: none">

(たとえば、最初は空白です。実際には、実際にはblank.html、(たとえば)場合によっては正しく機能しないため、実際には文字通りそのように聞こえるファイルを使用していますabout:blank。詳細は思い出せません。)

iframe に送信して ashx ファイルをトリガーするようにフォームに指示します。

<form ... action="your.ashx" target="formTarget" ... >

div の内容をフィールドにコピーする:

$("#fieldId").val($("#divId").html()); // Either .html() or .text(), depending on what you want

フォームの送信:

$("#formId").submit();

(各種「...」は適宜記入してください。)

私の場合、ユーザーに何をしているのかを伝えるオーバーレイ div を表示し、iframe のコンテンツ (エラー メッセージ) とステータス Cookie を監視するタイマーを開始します ( Cookie トリックの詳細については、この回答を参照してください)。 . 結果に応じて、オーバーレイが更新または削除されます。

于 2010-06-24T11:31:44.713 に答える