2017-10-18 83 views
2

我想在後臺打開一個標籤,點擊按鈕的方式類似於ctrl-click的工作方式。我試過用以下方式模擬ctrl-click,它設法在新選項卡中打開,但不會在後臺打開。它改爲切換到新標籤。這對我來說不起作用,因爲此選項卡上的過程需要一點點運行,我不希望我的用戶盯着很長的空白選項卡。JS在後臺打開標籤/模擬ctrl-click

這是我已經試過:

模擬按住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