我有一个Chrome扩展程序,可以自动打开一个窗口 window.open(); 当用户打开一些特定的网站时。 我想要的是我从后台脚本通过window.open()打开的新窗口应该显示在用户打开的当前网站的后面。
我尝试过window.open属性,例如alwaysLowered = 1,z-lock = 1等,但不能正常工作。 也试过.....
var w = window.open('url');
if(w){
w.blur();
window.focus();
}
所有这些对铬都没有影响。有人可以帮忙吗?
答案 0 :(得分:2)
如果您不需要打开窗口的句柄(由window.open
返回),您可以使用 chrome.windows
API 的方法 {{3 } 和 create
:
在 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
属性应该在一个步骤中获得相同的结果,但是对于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 });
});
});
答案 1 :(得分:0)
chrome.windows.getCurrent(function(winCurrent){
chrome.windows.create({url:url, function(win){
chrome.windows.update(winCurrent.id, {focused: true});
});
});
尝试这个,它的速度快,所以观众感觉不太多