【问题标题】:Positioning a popup on secondary screen在辅助屏幕上定位弹出窗口
【发布时间】:2014-07-04 09:49:45
【问题描述】:

我正在尝试为自己创建一个私人网页,该网页会在我的辅助监视器上以弹出窗口的形式打开一个网站。我可以在我的主监视器中自动定位弹出窗口,浏览器覆盖整个屏幕,很好,但是当我尝试自动将创建的弹出窗口移动到我的另一个屏幕时,它只是拒绝去那里。

我尝试使用的代码是

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 是我想要将其移动到的确切位置(使用自动热键窗口间谍检查),但 Chrome 似乎不愿意这样做。

我感觉这可能是因为position error correction,但是那个位置的窗口在我的桌面上非常明显并且完全可见。

有没有办法可以自动将窗口移动到javascript中的指定像素坐标?

【问题讨论】:

    标签: javascript google-chrome popup popupwindow


    【解决方案1】:

    相当具有挑战性的问题,但在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 实验,所以你可以玩一玩。

    【讨论】:

      猜你喜欢
      • 2011-03-10
      • 2011-05-03
      • 1970-01-01
      • 2019-08-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多