2017-02-20 7 views
0

私がリストしているドキュメントのページ。各文書はクリック可能なリンクです。クリックするとPDF(通常は別のタブや別のアプリケーションでもユーザーの設定に応じて開きます)が開き、元のタブが再読み込みされ、ページの「未読」の数が更新され、リンクスタイルが「読み取り」を示します。冗長ブランクタブを開かずにEdgeからPDFを開く

文書の詳細を取り巻く

HTMLスパン:

<span class='btn-link' onclick='openReport(@orderNumber, @tableBodyId); return false;'> 

Javascriptを:

function openReport(orderNumber, tableBodyId) { 
    var url = "/Reports/ValuationReportDocPdf?orderNumber=" + orderNumber; 
    var win = window.open(url, ''); 
    setTimeout(function() { location.reload(); }, 3000); 
} 

Javascriptがクロム、FirefoxとIE11で意図したとおりに動作します。

エッジでは、リンクをクリックすると、元のタブがタブバーで点滅している間に空白のタブが開き、フォーカスを受け取ります。「保存」、「名前を付けて保存」、「キャンセル」のいずれかを選択するのを待っています。 。したがって、ユーザーは元のタブに戻って続行する必要があります。それはまずは​​使い慣れたユーザーエクスペリエンスです。次に、「保存」をクリックすると、悪化します:PDFを含む3番目のタブが開きます。私はきれいに再生するためにエッジを入手するにはどうすればよい

質問

?ユーザーがPDFで何をするかを選択して空のタブを開かずにPDFを開くまで、元のページに留まるようにしたい。

編集

This post関連のようだが、それは<a>を使用しています。私はページを更新する必要があるので、私はアンカーを使うことはできないと思う。

答えて

2

これはsome helpです。 Edge onlyについては、download属性を持つ<a>を動的に作成し、「クリック」します。

function openReport(orderNumber, tableBodyId) { 
    var url = "/Reports/ValuationReportDocPdf?orderNumber=" + orderNumber; 

    if (isEDGE()) { 
     var dl = document.createElement('a'); 
     dl.setAttribute('href', url); 
     dl.setAttribute('download', 'filename.txt'); 
     dl.click(); 
    } else { 
     window.open(url, ''); 
    } 

    setTimeout(function() { location.reload(); }, 3000); 
} 

function isEDGE() { 
    return /Edge\/\d./i.test(navigator.userAgent); 
} 
関連する問題