【问题标题】:How to open maximized window with Javascript?如何使用 Javascript 打开最大化窗口?
【发布时间】:2019-05-10 19:03:44
【问题描述】:

我正在使用 Javascript 的 self.open() 在新窗口中打开一个链接,我希望该窗口最大化。我尝试了fullscreen=yes 选项,它确实没有达到我想要的效果。我正在使用以下代码:

self.open(pageLoc,popUpName,'height=1600,width=1800,resizable=yes,scrollbars=yes,toolbar=yes,menubar=yes,location=yes'); 

如果我还提到fullscreen=yes,则窗口会像您按 F11 一样打开。但我不希望那样。我想要的是当我双击 IE 并单击右上角的最大化图标时。

由于我给heightwidth 的值这么大,它接近最大化窗口但不是实际最大化窗口。 (我之所以这么说是因为 即使现在我点击最大化按钮,它也会进一步扩大一点)

【问题讨论】:

  • @Juren Thelen。正如我所提到的,即使在给定较大的高度和宽度之后,它也不会产生实际的最大化效果。
  • @Jürgen 我认为这可能是答案。

标签: javascript internet-explorer


【解决方案1】:
var params = [
    'height='+screen.height,
    'width='+screen.width,
    'fullscreen=yes' // only works in IE, but here for completeness
].join(',');
     // and any other options from
     // https://developer.mozilla.org/en/DOM/window.open

var popup = window.open('http://www.google.com', 'popup_window', params); 
popup.moveTo(0,0);

请不要打开弹出窗口,除非用户真的想要它,否则他们会诅咒您并将您的网站列入黑名单。 ;-)

编辑:糟糕,正如 Joren Van Severen 在评论中指出的那样,这可能没有考虑任务栏和窗口装饰(以可能依赖于浏览器的方式)。意识到。似乎忽略高度和宽度(只有参数是fullscreen=yes)似乎适用于 Chrome,也许也适用于 Firefox;最初的“全屏”功能因令人讨厌而在 Firefox 中被禁用,但已被最大化取代。这直接与https://developer.mozilla.org/en/DOM/window.open 同一页面上的信息相矛盾,后者说窗口最大化是不可能的。此“功能”可能受支持,也可能不支持,具体取决于浏览器。

【讨论】:

  • 这会打开一个比常规最大化窗口更大的窗口。最大化窗口的高度是 screen.height - 任务栏的高度(看起来也是一些窗口装饰)。
  • 分别是screen.availHeight。屏幕。可用宽度。无论如何,尺寸仍然不完全适合......
【解决方案2】:
 window.open('your_url', 'popup_name','height=' + screen.height + ',width=' + screen.width + ',resizable=yes,scrollbars=yes,toolbar=yes,menubar=yes,location=yes')

【讨论】:

  • 唯一改变的是窗口而不是自我。有什么区别?
【解决方案3】:

目前我能找到的打开最大化窗口的最佳解决方案是(Internet Explorer 11、Chrome 49、Firefox 45):

  var popup = window.open("your_url", "popup", "fullscreen");
  if (popup.outerWidth < screen.availWidth || popup.outerHeight < screen.availHeight)
  {
    popup.moveTo(0,0);
    popup.resizeTo(screen.availWidth, screen.availHeight);
  }

https://jsfiddle.net/8xwocrp6/7/

注意 1:它不适用于 Edge (13.1058686)。不确定这是一个错误还是它是否符合设计(我已经填写了a bug report,我们将看看他们对此有何评论)。这是一个解决方法:

if (navigator.userAgent.match(/Edge\/\d+/g))
{
    return window.open("your_url", "popup", "width=" + screen.width + ",height=" + screen.height);
}

注意 2:如果您打开的窗口位于另一个域中,moveToresizeTo 将不起作用(访问被拒绝)。

【讨论】:

    【解决方案4】:

    如果我使用 Firefox,那么 screen.widthscreen.height 可以正常工作,但在 IE 和 Chrome 中它们不能正常工作,而是以最小尺寸打开。

    是的,我尝试为heightwidth 提供太大的数字,例如10000,但不完全是最大化效果。

    【讨论】:

      【解决方案5】:

      查看这个 jquery 窗口插件:http://fstoke.me/jquery/window/

      // create a window
      sampleWnd = $.window({
         .....
      });
      
      // resize the window by passed w,h parameter
      sampleWnd.resize(screen.width, screen.height);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-05-21
        • 1970-01-01
        • 2014-09-09
        • 2021-03-21
        • 2014-03-29
        • 1970-01-01
        • 2016-09-09
        相关资源
        最近更新 更多