2

このXAgentは正常に動作しているようですが、現在のブラウザで開きます。新しいウィンドウで開くにはどうすればよいですか?

このコードは、XPageのAfterRenderedResponseで実行されています。

ありがとう

// Track Downloads

// Setup XAgent stuff
var exCon = facesContext.getExternalContext(); 
var writer = facesContext.getResponseWriter();
var response = exCon.getResponse();

var fileLink = param.get("link");

// Insert Logging Code here

facesContext.getExternalContext().redirect(fileLink);

writer.endDocument()
4

2 に答える 2

6

誰かがいつダウンロード リンクをクリックしたかを追跡しようとしているようです。

追跡がなければ、リンクはファイルを直接指していて、ブラウザがダウンロードを開始し、ユーザーは現在のページにとどまります。XAgent トラッキングが設定されていると、ユーザーはアプリケーションの別のページに移動してトラッキングを行い、ダウンロードを開始します。

XAgent を呼び出している最初のリンクに「_blank」のターゲットを追加できます。これにより、ユーザーのブラウザーで新しいウィンドウ/タブが開きますが、ダウンロードが開始されると閉じます。

ただし、ダウンロードを追跡するこの方法を使用すると、サイトのユーザーがダウンロード リンクを右クリックして「名前を付けて保存」することができなくなります。

于 2012-01-26T15:32:49.573 に答える
0

ダウンロード リンクの場合、OutputStream を使用してファイルをストリーミングすることも検討できます (1 つしかありません: Writer または Stream!)。ダウンロードするファイルのバイトを直接提供します。ヘッダーに MIME タイプを設定する必要があります。ブラウザが処理できるファイル タイプでない場合でも、ダウンロード ダイアログが表示されます。新しいウィンドウを開くことは、最近では実際には悪いスタイルと見なされています。ユーザーが新しいウィンドウを必要とする場合、Ctrl + クリックと Shift + クリック -> してはならない決定があります (これにより、ブラウザーの読み書きができないユーザーのワームの缶が開きます)。

于 2012-01-27T00:27:55.060 に答える