Google chrome Chrome extension在当前窗口后面打开新窗口

Google chrome Chrome extension在当前窗口后面打开新窗口,google-chrome,google-chrome-extension,Google Chrome,Google Chrome Extension,我有一个chrome扩展,可以使用 window.open(); 当用户打开某些特定网站时。 我想要的是通过window.open()从后台脚本打开的新窗口,它应该显示在用户打开的当前webiste后面 我尝试过window.open属性,如alwaysLowered=1、z-lock=1等,但不起作用。 也试过 var w = window.open('url'); if(w){ w.blur(); window.focus(); } 所有这些对铬没有影响。有人能帮忙吗?如果您不需要打开的窗

我有一个chrome扩展,可以使用 window.open(); 当用户打开某些特定网站时。 我想要的是通过window.open()从后台脚本打开的新窗口,它应该显示在用户打开的当前webiste后面

我尝试过window.open属性,如alwaysLowered=1、z-lock=1等,但不起作用。 也试过

var w = window.open('url');
if(w){
w.blur();
window.focus();
}

所有这些对铬没有影响。有人能帮忙吗?

如果您不需要打开的窗口的句柄(由
窗口返回。open
),您可以使用的方法

在background.js中:

chrome.browserAction.onClicked.addListener(function(tab) {
    chrome.windows.create({ url: "http://www.google.com/" }, function(win) {
        chrome.windows.update(win.id, { focused: false });
    });
});
从理论上讲,在createInfo参数中传递
focused:false
属性应该可以在一个步骤中获得相同的结果,但对于Windows上的Chrome版本31.0.1650.57,它不起作用


更新:
上面的代码似乎并没有“模糊”Mac上的窗口。要克服这一问题(根据OP的意见确定新窗口的位置和大小),请使用以下代码:

chrome.browserAction.onClicked.addListener(function(tab) {
    chrome.windows.create({ 
        url: "http://www.google.com/",
        width:  430,
        height: 150,
        top:    top_popup,
        left:   left_popup
    }, function(win) {
        chrome.windows.update(tab.windowId, { focused: true });
    });
});

试试这个,速度很快,所以观众感觉不太好

谢谢你的回复。它适用于windows chrome 31.0.1650.63 m版,但不适用于mac chrome 31.0.1650.63 m版。有趣!与其试图模糊创建的窗口,您可以尝试聚焦原始窗口(但我没有可供测试的MAC)。例如,尝试更改chrome.windows.update(win.id,{focused:false})to
chrome.windows.update(tab.windowId,{focused:true})chrome.windows.getCurrent(function(winCurrent){
        chrome.windows.create({url:url, function(win){
            chrome.windows.update(winCurrent.id, {focused: true});
        });
    });