【问题标题】:Hiding the address bar of a browser (popup)隐藏浏览器的地址栏(弹出)
【发布时间】:2013-04-02 07:25:43
【问题描述】:

我必须隐藏浏览器的地址栏。我正在使用此代码:

var winFeature =
        'location=no,toolbar=no,menubar=no,scrollbars=yes,resizable=yes';
window.open('Result.html','null',winFeature);  

在许多解决方案中,只有location=no 属性可以隐藏地址栏(在 IE 和 Chrome 中)。但是,这对我不起作用(即使在 IE 和 Chrome 中)。

最后,我找到了一个MSDN article,它描述了location=no 如何简单地隐藏后退/前进/停止导航按钮,并使地址栏只读

有没有办法通过忽略上面的 MSDN 文章来隐藏整个地址栏?我正在 IE 和 Google Chrome 中进行测试。

【问题讨论】:

    标签: javascript


    【解决方案1】:

    每个浏览器都不一样。

    几年前,你的尝试是正确的。但如今,浏览器供应商将无法看到浏览器地址栏(出于网络钓鱼原因)视为一种安全风险,因此他们(或大多数人)决定始终显示浏览器地址栏。这在我眼里很好。

    【讨论】:

      【解决方案2】:

      你可以让网页向下滚动到你看不到地址栏的位置,如果用户滚动,页面应该回到你设定的位置。 这样,移动浏览器在向下滚动时,将尝试为您提供全屏体验。所以它会隐藏地址栏。 我不知道代码,别人可能会放代码。

      【讨论】:

      • 无论你滚动多远,它仍然显示菜单栏,就像在这个网站上,当你在页面上向下滚动时仍然可以在顶部看到位置栏
      【解决方案3】:

      这就是我对弹出窗口的处理方式,尽管它仅适用于 IE11,而不适用于 Chrome——尚未在 Firefox 中测试。

      window.open(url, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no');
      

      【讨论】:

        【解决方案4】:

        你可能无法隐藏它,但如果你正在寻找额外的空间,我所做的并且似乎工作的是一件非常简单的事情,地址栏有60px的高度,所以这是我的解决方案。

        @media only screen and (max-width: 1024px){ // only from ipads down
          body{
            padding-bottom: 60px; // push your whole site same height upwards. ;)
          }
        }
        

        【讨论】:

          【解决方案5】:

          找一样的,我唯一能做的就是

          在应用模式下启动 Google Chrome

          Chrome.exe --app="<address>"
          

          从运行提示。示例:

          Chrome.exe --app="http://www.google.com"
          

          Mozilla Firefox 中隐藏地址栏

          在地址栏中输入about:config,搜索:

          dom.disable_window_open_feature.location
          

          并将其设置为false

          因此,当您打开一个弹出窗口时,它会在隐藏地址栏的情况下启动。例如:

          window.open("http://www.google.com",'','postwindow');
          

          现在,我想用 Microsoft Edge 做一些类似的事情,我还没有找到任何关于这个浏览器的东西。

          【讨论】:

            【解决方案6】:

            在版本 20.10240.16384.0 的 Edge 浏览器中,您可以通过在 window.open 功能中设置 location=no 来隐藏地址栏。

            【讨论】:

            • 不是真的,刚刚测试过:window.open('https://www.google.com/', '', 'location=no'); 地址栏仍然存在
            【解决方案7】:

            浏览器地址栏无法隐藏。

            【讨论】:

              【解决方案8】:

              您可以使用 Visual Basic 来完成,在表单上放置一个 Webbrowser 控件,加载一个 html 以打开带有 Location=no 的弹出窗口,它将打开一个没有地址栏的新浏览器。可能不是你要找的东西,只是想把它扔进去:)

              【讨论】:

                【解决方案9】:

                由于安全限制,这在现代浏览器中不再可能。

                官方(-ish)来源:

                • Firefox

                  在 Firefox 3 中,dom.disable_window_open_feature.location 现在默认为 true,从而强制显示位置栏,就像在 IE7 中一样。有关详细信息,请参阅错误 337344。

                • Internet Explorer 7 and later

                  在 Internet Explorer 6 中,位置指定是否显示地址栏。

                  (暗示行为以 IE6 结尾)

                • Chrome/Chromium

                  那些工具栏隐藏参数在 Chrome 中被忽略。 您还会注意到,现代浏览器正朝着不将其隐藏为安全/反网络钓鱼措施的方向发展。 另见https://bugzilla.mozilla.org/show_bug.cgi?id=337344

                【讨论】:

                • 仅供参考,MSDN 链接现在已断开(因为 MSDN),现在重定向到 MDN window.open()。另一个答案的引用比这更明确,但出于同样的原因,来源已经消失了。
                【解决方案10】:

                真相是什么?

                Microsoft 描述其浏览器行为的文档是正确的。

                有没有办法隐藏地址栏?

                没有。如果你可以隐藏它,那么你可以使用 HTML/CSS 来制作一些看起来像普通地址栏的东西。然后,您可以在其中输入不同的地址。然后,您可以诱骗人们认为他们在不同的网站上并输入他们的密码。

                不可能向他们隐瞒用户的位置,因为他们知道自己的位置对于安全至关重要。

                【讨论】:

                • 很好的描述!如果浏览器让我们隐藏它们的地址栏,那将是危险且不聪明的
                【解决方案11】:

                没有明确的方法可以做到这一点。 JS 可能有 API,但浏览器厂商可能会选择不实现它或以其他方式实现它。

                另外,据我所知,Opera 甚至提供了用户偏好来防止 JS 进行此类更改,例如移动窗口、更改状态栏内容等等。

                【讨论】:

                  猜你喜欢
                  • 2012-08-15
                  • 1970-01-01
                  • 2013-08-21
                  • 1970-01-01
                  • 1970-01-01
                  • 2013-08-06
                  • 2013-07-21
                  • 1970-01-01
                  相关资源
                  最近更新 更多