2017-04-12 2 views
0

ブラウザにpdfを開くリンクがあります。 。しかし、それは、この動作を防ぐために、どのように新しいタブ(pdfとタブに焦点を当てます新しいファイルを開くときにタブに留まる方法(ファイルを開く)?

これはリンクです:?

<strong><a style="text-decoration:none" class='row_link' href='javascript:void(0)' target="_blank" onFocus="false">Open File</a></strong> 

これはjQueryのです:

$("#myTable tbody").on('click','.row_link', function(e) { 
    var no_s = $(this).find('.filename').val().replace(/\//g , ''); 
    var b_url = $('#base_url').val()+"assets/uploads/file/"; 

    var url  = b_url + no_s; 
    window.open(url); 
}); 

アンカーにonfocus="false"を追加しようとしましたが、効果がありません。

+0

にフォーカスを維持するために、子供にこれを使用することができます。参考:http://stackoverflow.com/questions/4907843/open-a-url-in-a-new-tab-and-not-a-new-window-using-javascript – Rex

答えて

1

<html> 
 
<strong><a style="text-decoration:none" class='row_link' href='https://github.com/caiyongji' onclick="window.open('#','_blank');window.open(this.href,'_self');">Open File</a></strong> 
 
</html>

+0

まだpdfタブに焦点を当てています – ashura91

+0

これを試してください。できます。このページでは実行しないでコピーしてから実行してください。 –

+0

新しいタブはpdfで開かれていません。新しいタブで前のページを開きます。 – ashura91

0

この効果を「ポップアンダー」といいます。

新しく開いたウィンドウでは、基本的にwindow.blur()を使用してフォーカスを失い、既存のタブにフォーカスを合わせる必要があります。

$("#myTable tbody").on('click','.row_link', function(e) { 
var no_s = $(this).find('.filename').val().replace(/\//g , ''); 
var b_url = $('#base_url').val()+"assets/uploads/file/"; 

var url  = b_url + no_s; 
var newWindow = window.open(url); 
newWindow.blur(); 
window.focus(); 
}); 

Relevant Stackoverflow post

+0

まだpdfタブに集中しています – ashura91

0

あなたがバックグラウンドタブを開く動作をしたいので、あなたのjqueryの中で例えばこのanswer

の例である次のコードを試してみてください。

$("#myTable tbody").on('click','.row_link', function(e) { 
    var no_s = $(this).find('.filename').val().replace(/\//g , ''); 
    var b_url = $('#base_url').val()+"assets/uploads/file/"; 

    var url = document.createElement("a"); 
    url.href = b_url + no_s; 
    var evt = document.createEvent("MouseEvents"); 
    //the tenth parameter of initMouseEvent sets ctrl key 
    evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, 
          true, false, false, false, 0, null); 
    a.dispatchEvent(evt); 
}); 

ことができますかあなたは問題

+0

まだpdfタブに焦点を当てています。 – ashura91

+0

@ ashura91、私の編集された答えを見てください。 –

+0

今すぐpdfを開くことができません。 – ashura91

0

を見つけた場合、私が正しく理解していれば、何が必要であれば、私に教えてくださいすることは、ユーザーに新しく開いたタブを表示したくありません。

:これはコードの下で見てください。..

を@Rexが示唆されているように行うことはできませんが、代替があるとして、あなたはポップアップウィンドウを開くとすぐにあなたが望むようにそれを最小限に抑えることができるものを行うことができます

親ページ

<a href="javascript:openPopUP();">Click to open popup</a> 

託児ページ

 <body onLoad="setTimeout('window.blur()', 1000);" 
     onFocus="setTimeout('window.blur()', 1000);"> 

あなたはあなたが望むものに時間1000を変えることができます。

は、あなたは、ブラウザ上でこれを行うことができない親ページ

window.parent.opener.focus(); 
+0

私は窓を開けたくありません。Beacuse、ユーザーは複数のpdfを開くことができます。各PDFファイルが新しいウィンドウで開かれている場合、ユーザーはそのコンピュータで遅れを取る可能性があります – ashura91

関連する問題