防止窗口.打开聚焦

Prevent window.open from focusing

本文关键字:聚焦 窗口      更新时间:2023-09-26

我想用window.open()在Google Chrome的新选项卡中打开一个页面,但我不希望该窗口在打开后获得焦点,而是留在后台。

这可能吗?它只需要在谷歌浏览器上工作。它还可以使用Google Chrome扩展API。

谢谢

正确的方法是使用扩展API:

chrome.tabs.create({url: "http://...", selected: false});

代码应该放在背景页中。如果您需要在内容脚本中使用它,则可以将消息传递到背景页面,如下所示:

//content script
chrome.runtime.sendMessage({link: link});
//background page
chrome.runtime.onMessage.addListener(function(message, sender, sendResponse) {
    if(message.link) {
        chrome.tabs.create({url: message.link, selected: false});
    }
});
window.open(url, name, features);
window.focus();
您将在短时间内看到新窗口。

在所有的浏览器中都有一条出路

function openURL(url, opt){
  if (opt == 0){ // current window
    window.location = url;
  }else if (opt == 1){ // new window
    window.open(url);
  }else if (opt == 2){ // background window
    window.open(url); self.focus();
  }
}

so通过使用this,你可以做任何你想做的事。

openURL( "http://www.google.com", 0 ) --> open in same window
openURL( "http://www.google.com", 1 ) --> open in new window
openURL( "http://www.google.com", 2 ) --> open in new window but in background.

是的,你可以这样做,只要使用:

var myWindow = window.open(url,name,features);
myWindow.blur();

从子窗口激活父窗口或在子窗口打开时激活自窗口