在Firefox和IE中打开没有地址栏的新弹出窗口

69

希望有人能够帮忙。我无法在Firefox中使用下面的代码打开没有地址栏的新窗口。但IE可以正常工作。

window.open('/pageaddress.html', 'winname', 
  directories=0,titlebar=0,toolbar=0,location=0,status=0,     
    menubar=0,scrollbars=no,resizable=no,
      width=400,height=350);

我需要为所有浏览器进行设置


3
在现代的Firefox中,这种愚蠢的方法不起作用。 - Nicolas Barbulesco
Firefox 3 注意事项 在Firefox 3中,dom.disable_window_open_feature.location现在默认为true,强制出现类似于IE7的位置栏。有关更多信息,请参见bug 337344。因此,在Firefox 3以下,仅隐藏位置栏有效。 - Emmanuel Angelo.R
这在 MS Edge 中也不起作用... 所有这些参数和其他窗口特性都被忽略了。 - Apostolos
6个回答

91

Firefox 3.0及更高版本默认禁用了location的设置,resizablestatus也被默认禁用。您可以在地址栏中键入“about:config”并按“dom”进行过滤,以验证此信息。相关条目包括:

  • dom.disable_window_open_feature.location
  • dom.disable_window_open_feature.resizable
  • dom.disable_window_open_feature.status

您可以在Mozilla开发者网站上获取更多信息。但基本上这意味着您将无法实现所需功能。

您可能想要做的一件事(虽然这不能解决您的问题),是在窗口特性参数周围加上引号,如下所示:

window.open('/pageaddress.html','winname','directories=no,titlebar=no,toolbar=no,location=no,status=no,menubar=no,scrollbars=no,resizable=no,width=400,height=350');

感谢您的回答。正如您所说,它被Firefox禁用了。 - Anbu
1
@Intelekshual 标题栏未隐藏。在IE、FF、Chrome和Opera中进行了检查。 - SCC
你能看一下这个吗:https://dev59.com/d4Pba4cB1Zd3GeqPoSnm - Yoda

20

我同意在现代浏览器中无法隐藏地址栏,但我们可以隐藏地址栏中的URL(例如显示URL about:blank)。以下是我的解决方案:

var iframe = '<html><head><style>body, html {width: 100%; height: 100%; margin: 0; padding: 0}</style></head><body><iframe src="https://www.w3schools.com" style="height:calc(100% - 4px);width:calc(100% - 4px)"></iframe></body></html>';

var win = window.open("","","width=600,height=480,toolbar=no,menubar=no,resizable=yes");
win.document.write(iframe);

打印时效果很好,没有 URL!不知道这对所问的问题是否有帮助! - some_groceries

18

查看mozilla window.open 文档。 窗口特性(如“directory=...,...,height=350”)等参数应为字符串:

window.open('/pageaddress.html','winname',"directories=0,titlebar=0,toolbar=0,location=0,status=0,menubar=0,scrollbars=no,resizable=no,width=400,height=350");

在您的浏览器上尝试一下是否可行。请注意,一些功能可能会被用户偏好设置覆盖,例如"位置"(请参阅文档)。


4
标题栏未隐藏。在IE、Firefox、Chrome和Opera中进行了检查。 - SCC
2
地址栏未隐藏。 - user2568374
不仅我查看了 https://developer.mozilla.org/en-us/docs/Web/API/Window/open ,而且我还测试了窗口功能:使用 windowFeatures = "menubar=yes,location=yes,resizable=yes,scrollbars=yes,status=yes"windowFeatures = "menubar=no,location=no,resizable=no,scrollbars=no,status=no" 没有任何区别,即结果完全相同。 - Apostolos

12

解决方案 - 打开一个模态弹出窗口并嵌入外部网址作为iframe。


3

在 Internet Explorer 中,如果新的 URL 与当前 URL 属于同一个域名,那么窗口将会在没有地址栏的情况下打开。否则,它会导致地址栏出现。一种解决方法是先打开同一域名下的页面,然后再从该页面重定向。


0

检查一下,如果它能正常工作,那对我来说就很好了。

var windowObjectReference;
var strWindowFeatures = "menubar=no,location=no,resizable=no,scrollbars=no,status=yes,width=400,height=350";

function openRequestedPopup() {
  windowObjectReference = window.open("http://www.flyingedge.in/", "CNN_WindowName", strWindowFeatures);
}

openRequestedPopup();


4
不,这并不起作用,至少在当前的Firefox浏览器中是这样。菜单栏和滚动条已被禁用,但地址栏仍然可见,且窗口大小仍然可调整。 - sleske

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