隐藏浏览器地址栏(弹出窗口)

56
我需要隐藏浏览器的地址栏。我正在使用以下代码:
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文章,描述了如何简单地使用location=no来“隐藏后退/前进/停止导航按钮,并使地址栏只读”。 有没有任何方法可以忽略上述MSDN文章并隐藏整个地址栏? 我正在IE和Google Chrome中进行测试。
11个回答

87

什么是真相?

微软文档中描述其浏览器行为的内容是正确的。

有没有隐藏地址栏的解决方案?

没有。如果您能够隐藏它,那么您可以使用HTML/CSS制作类似常见地址栏的东西。然后,您可以在其中放入不同的地址。然后,您可以欺骗人们认为他们正在进入另一个站点并输入其密码。

不可能将用户的位置对他们进行隐瞒,因为安全需要他们知道自己的位置。


4
很棒的描述!如果浏览器允许我们隐藏地址栏,那将是危险和不明智的。 - Mohammad Kermani

42

由于安全限制,现代浏览器不再支持隐藏地址栏。

官方(或类似官方)来源:

  • Firefox

    在 Firefox 3 中,dom.disable_window_open_feature.location 的默认值为true,强制显示类似 IE7 的地址栏。更多信息请参见 bug 337344。

  • Internet Explorer 7 及以上版本

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

    (暗示行为在 IE6 中结束)

  • Chrome/Chromium

    这些工具栏隐藏参数在 Chrome 中被忽略。 您还会注意到,现代浏览器正在朝着不隐藏地址栏的方向发展,这是出于安全 / 防钓鱼措施。请参见 https://bugzilla.mozilla.org/show_bug.cgi?id=337344


仅供参考,MSDN链接现在已经失效(因为MSDN),并且现在重定向到MDN window.open()。另一个答案中有一句比这更明确的引用,但由于同样的原因,该来源已经消失。 - Braiam

18

寻求相同的人,我唯一能做的就是:

以应用模式启动 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');

Firefox无地址栏

Chrome应用模式

现在,我希望在Microsoft Edge中实现类似的效果,但我还没有找到针对此浏览器的解决方案。


12

在每个浏览器中都有所不同。

几年前,您尝试的做法是正确的。但现在,由于浏览器供应商认为无法看到浏览器地址栏(出于钓鱼原因)被视为安全风险,因此他们(或大多数人)决定始终显示浏览器地址栏,这在我看来是好的。


3
无法隐藏浏览器地址栏。

2

没有确切的方法来实现这个。JS可能有API,但浏览器供应商可能选择不实施它或以另一种方式实施它。

此外,据我所记,Opera甚至提供了用户设置选项,以防止JS进行这样的更改,例如移动窗口,更改状态栏内容之类的东西。


0

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

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

-1

你可以使用Visual Basic来实现,将Webbrowser控件放在窗体上,加载一个带有Location=no的弹出式HTML,它将打开一个没有地址栏的新浏览器。可能不是你想要的,但只是想提一下 :)


-4

这是我用于弹出窗口的方法,虽然它仅适用于IE11,不适用于Chrome-尚未在Firefox中测试。

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

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

2
不是真的,刚刚测试了一下:window.open('https://www.google.com/', '', 'location=no'); 地址栏仍然存在。 - erikvimz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接