2017-10-18 10 views
2

ボタンの背景にタブを開くときは、ctrl-clickのようにクリックしてください。私はctrl-clickを次のようにシミュレートしようとしました。新しいタブで開くことができますが、バックグラウンドでは開きません。代わりに新しいタブに切り替わります。このタブのプロセスが少し実行され、ユーザーが空白のタブを長く見続けないようにするため、これは私のためには機能しません。JSタブをバックグラウンドで開く/ Ctrlキーを押しながらクリック

シミュレートCtrlキーを押しながらクリックしてください:

var a = document.createElement('a'); 
a.href = 'http://www.google.com'; 
var evt = document.createEvent('MouseEvent'); 
evt.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, true, false, false, false, 0, null); 
a.dispatchEvent(evt); 

これは、新しいタブを開き、変更がctrlKeyオプションに設定されていてもカントー新しいタブにフォーカスここで

は、私が試したものです本当。

変更ウィンドウフォーカスが

var a = document.createElement('a'); 
a.href = 'http://www.google.com'; 
var evt = document.createEvent('MouseEvent'); 
evt.initMouseEvent('click', true, true, window, 0, 0, 0, 0, 0, true, false, false, false, 0, null); 
a.dispatchEvent(evt); 
window.focus(); 

は、上記と同じように動作します。

タブを切り替えることなく、これをバックグラウンドで完全に開く方法を教えてください。

答えて

0

//for detect ctrl click 
 
function ctrl_click(_event){ 
 
    if (_event.ctrlKey) { 
 
     alert('ctrl_click'); 
 
    } 
 
} 
 
//for simulate ctrl click 
 
setTimeout(function(){ 
 
    var evt = $.Event('click'); 
 
    evt.ctrlKey = true; 
 
    $('#test').trigger(evt); 
 
},3000);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 

 

 
<div id="test" onClick="ctrl_click(event);">CLICK ME WITH CTRL</div>

+0

これは、バックグラウンドのタブで開きません。 –

+0

また、上記のコードでa.triggerが関数ではないというエラーが表示されます。 –

+0

私は、CTRL + CLICKを使った簡単な例を挙げました。その作品。多分これはあなたが必要とするものではありません... – mscdeveloper

関連する問題