我正在尝试为自己创建一个私人网页,该网页会在我的辅助显示器上打开一个网站作为弹出窗口。我可以在我的主显示器中自动定位弹出窗口,浏览器覆盖整个屏幕,很好,但当我尝试自动将创建的弹出窗口移动到我的其他屏幕时,它只是拒绝去那里。
我正在尝试的代码是
window.open('https://tweetdeck.twitter.com','Tweetdeck','width=1664,height=488,toolbar=0,menubar=0,location=0,status=1,scrollbars=1,resizable=1,left=-1680,top=591');
我也尝试使用.moveTo
得到相同的结果。
top
定位工作正常,但left
在小于0时似乎没有效果。left=-1680,top=591
是我要将其移动到的确切位置(已选中)使用autohotkey window spy),但Chrome似乎并不愿意这样做。
我觉得这可能是由于position error correction,但是那个位置的窗口非常在我的桌面上并且完全可见。
有没有办法可以自动将窗口移动到javascript中的指定像素坐标?
答案 0 :(得分:0)
这是一个极具挑战性的问题,但我担心在dual view
模式下它是不可能的;我还有两台显示器在双视图模式下工作。看看这个
if (!w || w.closed) {
w = window.open("","links","menubar=0,scrollbars=0,width=600,height=480");
}
w.document.write("<p>X: " + w.screenX + "Y: " + w.screenY + "</p>");
// center in
w.moveTo((screen.width/2)-(640/2),(screen.height/2)-(480/2));
// horizontal positioning fails
// try the negative value
w.moveTo(-300,300); // it fails again
w.focus();
// it only works if you move the popup window by hand
// after that it has already been instantiated
如果我合并我的两个屏幕,也许它可以工作,不确定。我会在此期间检查它并在此处回复结果。
EDIT
是的,如果我以所谓的horizontal span
模式合并我的两个屏幕,它就有效。
我相信还有另一种解决方案,例如构建一个小型的C / C ++应用程序来处理活动窗口但不是很奇怪:)
var oShell = new ActiveXObject("Shell.Application");
var commandtoRun = "C:\\PopupWinHandler.exe";
oShell.ShellExecute(commandtoRun,"","","open","1");
但是,这是jsBin实验,所以你可以玩。