【问题标题】:Using Javascript to open a "maximized" window in IE6?使用 Javascript 在 IE6 中打开“最大化”窗口?
【发布时间】:2009-07-07 03:13:37
【问题描述】:

对此有什么想法吗?

遇到的问题:在window.open中使用screen.availHeight和screen.availWidth作为高宽参数会导致浏览器大小包含任务栏,定位在(0, 0)会忽略任务栏在上面的可能性.

我想要的是打开一个新窗口,其大小就像用户“最大化”一样,即它不应该覆盖 Windows 任务栏。

(哦,不用提醒我,用户不喜欢 Javascript 干扰他们的浏览器窗口等。这是针对内部 Intranet webapp...)

【问题讨论】:

    标签: javascript internet-explorer


    【解决方案1】:

    这会导致同样的问题吗?

    <script type="text/javascript">
    
        window.moveTo(0,0);
        window.resizeTo(screen.width,screen.height);
    
    </script>
    

    【讨论】:

    • 这似乎在我的机器上引起了不同的问题。任务栏没有被覆盖,但窗口的一部分被覆盖(即它位于任务栏后面)。是否可以打开“正确”的最大化窗口? IE。你不能从工具栏中拖动它或调整它的大小,它显示的是还原按钮而不是最大化按钮?
    • 尝试使用 screen.availWidth 和 screen.availHeight 而不是 screen.width 和 screen.height。据我所知,没有办法打开正确最大化的窗口,只能打开一个占据整个屏幕的窗口。
    【解决方案2】:

    这可能会接近你想要的:

    window.moveTo(screen.width - screen.availWidth,
                  screen.height - screen.availHeight);
    window.resizeTo(screen.availWidth + screen.availWidth - screen.width,
                    screen.availHeight + screen.availHeight - screen.height);
    

    【讨论】:

    • 这也不起作用 - 由于 moveTo 函数考虑了任务栏的位置,因此窗口位于屏幕下方太低。
    【解决方案3】:

    试试这个打开最大化和删除选项来锁定用户弄乱你的内部网站。您可以根据自己的要求调整限制。

    function openFullscreen(url)
    {
    
     // get the height correction for IE and set the window height and width
     var height = screen.availHeight;
     var width = screen.availWidth;
    
     var fullscreen = (document.all) ? "no" : "yes";
     var resizable = "no";
     var toolbar = "no";
     var status = "no";
     var left = 0;
     var top = 0;
    
     //set window properties
     props = "toolbar=no" +
     ",fullscreen=" + fullscreen +
     ",status=no" +
     ",resizable=no" +
     ",scrollbars=no" +
     ",menubar=no" +
     ",location=no" + ",";
    
     dims = "width="+ width +
     ",height="+ height +
     ",left="+ left +
     ",top=" + top;
    
     var win = window.open("", name, props + dims);
     win.resizeTo(width, height);
     win.location.href = url;
     win.focus();
    }
    

    【讨论】:

      【解决方案4】:

      很遗憾,IE(8-) 不支持availLeft/availTop 属性...

      【讨论】:

        【解决方案5】:

        快速浏览一下,好像

        window.moveTo(screen.availLeft, screen.availTop);
        window.resizeTo(screen.availWidth, screen.availHeight);
        

        可能是最好的方法 - 我相信这应该准确返回可用的屏幕宽度(如果您有多个显示器,它似乎可以在单个显示器上使用)。

        但这不是一个完美的解决方案 - 如果其他人对如何打开真正的最大化窗口有任何建议,我很想听听

        【讨论】:

          【解决方案6】:
          <script type="text/javascript">    
           window.moveTo(screen.width-screen.availWidth,screen.height-screen.availHeight);
           window.resizeTo(screen.availWidth,screen.availHeight);
          </script>
          

          【讨论】:

            【解决方案7】:

            此代码打开一个最大化的窗口,但它会从该窗口最大化打开链接

            我在结束头标签之前有base target=main。非常重要的是,该代码是结束 head 标记之前的最后一个标记,如果页面中的任何链接具有 target="_parent

            如果按钮代码中没有大小,并且按钮代码中有指定目标标记,则页面中的任何内容都将全屏打开target="parent

            我尝试了所有的代码,但是在几个链接之后,最大化的代码会松动它 哦..我刚刚向您展示的方式是真正的最大化窗口而不是大小的浮动窗口

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2011-05-21
              • 1970-01-01
              • 2014-09-09
              • 2010-11-20
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多