2015-03-19 36 views
0

我有這樣的代碼,可以滿足我的需求。它打開另一個選項卡中的鏈接,但它移到新打開的選項卡上,保留當前選項卡。我希望它保持當前選項卡處於活動狀態,並剛打開新打開的選項卡。點擊我網站上的鏈接時打開新標籤頁保持當前選項卡有效

function loadpopunder() { 
       var clicked = false; 
       $('a').each(function() { 
        this.onclick = function() { 
         var a = document.createElement("a"); 
         a.href = "http://sitetopopeninnewtab.com"; 
         if (navigator.userAgent.toLowerCase().indexOf('firefox') > -1) 
         { 
          a.target = "_blank"; 
         } 
         if (navigator.userAgent.toLowerCase().indexOf('firefox') > -1) 
         { 
//      var evt = new MouseEvent('click', {'view': window, 'bubbles': true, 'cancelable': true, }); 
          var evt = document.createEvent("MouseEvents"); 
         } 
         else { 
//      var evt = new MouseEvent('click', {'view': window, 'bubbles': true, 'cancelable': true, 'metaKey': true, 'ctrlKey': true}); 
          var evt = document.createEvent("MouseEvents"); 
         } 
         evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, 
           true, false, false, false, 0, null); 
         if (clicked == false) { 
          a.dispatchEvent(evt); 
          clicked = true; 
         } 
        } 
       }); 


if(window.location.href == 'http://mymainwebsite.com/'){ 
    loadpopunder(); 
} 
+0

這由您的瀏覽器中的設置控制,無法使用JavaScript進行操作。這意味着,使用JavaScript在後臺打開標籤是(幾乎所有瀏覽器)不可能的。然而,通過模擬'ctrl + click'有一個解決方法,它只能在某些瀏覽器版本上工作,如[這裏]所述(http://stackoverflow.com/questions/10812628/open-a-new-tab-in -the-background) – treegarden 2015-03-19 12:43:20

+0

謝謝你我會試試看。 – MSaudi 2015-03-19 13:07:54

+0

沒有什麼是不可能的。也許你必須在這個問題中打開背景中的標籤:http://stackoverflow.com/questions/10812628/open-a-new-tab-in-the-background所以你不會放鬆焦點 – 2015-03-19 13:14:28

回答

0

由於您依賴於瀏覽器設置,因此無法正確完成此操作。即使您在target='_blank'的新選項卡中打開了網址,如果瀏覽器設置爲在彈出窗口中打開新頁面,您也不會得到新選項卡。

你應該檢查一些其他答案關於它herehere

您可以在評論中看到所有瀏覽器都有不同的行爲。 你可以,但是,管理新打開的窗口與javascript window object

,你可以做其他的事情,是檢查的重點是窗口或沒有,通過使用JavaScript visibility api

希望有所幫助。

相關問題