2012-01-26 2 views
2

このXAgentは正常に動作しているようですが、CURRENTブラウザで開きます。どうすれば新しいウィンドウで開くことができますか?XAgent内部でXPagesを新しいウィンドウにリダイレクトする方法は?

このコードはXPageのAfter RenderedResponseで実行されています。あなたが誰かがダウンロードリンクをクリックしたときに追跡しようとしているように

おかげ

// 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() 

答えて

6

が見えます。

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

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

このダウンロード方法を使用すると、サイトのユーザーがダウンロードリンクを右クリックして「別名で保存」できるようになります。

+0

ありがとうございます!感謝します。右クリック能力を維持する方法があれば。 –

0

ダウンロードリンクでは、ダウンロードするファイルのバイトを直接処理するために、OutputStreamを使用してファイルをストリーミングすることもできます(WriterまたはStream!ヘッダーにMIMEタイプを設定する必要があります。ブラウザが処理できるファイルタイプでない場合は、ダウンロードダイアログが表示されます。新しいウィンドウを開くことは、最近、実際には悪いスタイルとみなされます。ユーザーが新しいウィンドウを望む場合、Ctrl +クリックとShift +クリック - >それらのために行うべきではない決定(ブラウザーの無識字ユーザーのワームの缶を開く)があります。

+0

リンク上でOutputStreamを使用する際の問題は、呼び出しページの制御を失うことです。ファイルをダウンロードした後でページの一部が更新されません。 隠しファイルをダウンロードするには隠しファイルを使用しますが、iPadなどのモバイルデバイスでは機能しません。 –

関連する問題