我想在Google Chrome浏览器的新标签页中使用window.open()打开一个页面,但我不希望该窗口在打开后获得焦点,而是留在后台。
这可能吗?它只需要在Google Chrome上运行。它还可以使用Google Chrome扩展程序API。
由于
答案 0 :(得分:10)
正确的方法是使用扩展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: link, selected: false});
}
});
答案 1 :(得分:3)
window.open(url, name, features);
window.focus();
你会在短时间内看到新窗口。
答案 2 :(得分:2)
所有浏览器都有出路
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();
}
}
所以通过使用它,你可以做任何你想做的事。
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.
答案 3 :(得分:1)
是的,你可以这样做:
var myWindow = window.open(url,name,features);
myWindow.blur();
答案 4 :(得分:0)
试试这个:(仅限镀铬)
var myWindow = window.open(url,name,features);
window.open().close();
答案 5 :(得分:-2)
从子项激活父窗口或在打开子项后激活self。