浏览器在通过javascript打开新窗口时是否会忽略窗口参数?

时间:2010-10-01 16:52:51

标签: javascript popupwindow

我正在通过javascript打开一个弹出窗口。我正在尝试设置一些显示参数 - 特别是我们要隐藏位置和状态栏,但是我测试过的每个浏览器都会显示位置和状态栏。

我的代码如下所示:

newwindow=window.open(url,'name','height=250,width=290,left=200,top=200,location=no,resizable=yes,scrollbars=yes,toolbar=no,status=no');

有什么想法吗?客户端坚持使用弹出窗口,而不是悬停工具提示。

6 个答案:

答案 0 :(得分:4)

出于安全原因,浏览器已停止侦听某些参数。例如,FF3 +和IE6 / 7+强制使用位置栏来防止诈骗者冒充他们不是的网站。

相关:The Internet Explorer 7 Security Status Bar

  

每当您访问任何网站时,您都应该查看该网站的完整地址(URL),以了解您正在查看的网站。 IE7通过在每个窗口中强制执行地址栏来帮助您,但您仍可能需要滚动它或最大化窗口才能查看完整地址。

如果您需要更多的自由,并且碰巧对用户的计算机有一些控制权(例如在封闭的内部网中),那么有Mozilla Prism等解决方案可以让网站出现而非像桌面应用程序。但这些是高度专业化的解决方案,不适合普通的网站。

答案 1 :(得分:3)

是的,一些参数被禁用。原因是不应该打开假装成其他东西的窗口。

具体规则取决于浏览器,页面范围(内部网/公共)和用户设置。大多数浏览器都不会删除地址栏,因此您可以随时查看该页面的来源。

您可以在此处阅读restrictions in Internet Explorer

一些引言:

  

“适用于Windows XP的Internet Explorer 6   SP2需要窗口标题   栏和状态栏总是在   显示器的可见区域;如果   显示地址栏,它也必须   仍然可见。放置这些   对脚本打开的窗口的限制,   Window Restrictions安全性   功能可防止恶意代码   隐藏信息和欺骗   用户界面。窗户   限制功能默认打开   用于Internet区域和功能   默认情况下,本地关闭   Intranet和可信站点区域。“

  

“状态栏是互联网   Explorer安全功能   为用户提供Internet   Explorer安全区域信息。   在Internet Explorer 6之前   Windows XP SP2,状态栏可以   通过脚本向用户隐藏   调用window.open方法。同   状态栏隐藏在视图中,用户   可以被欺骗去思考   他们在一个受信任的网站上   实际上是与...互动   恶意主机。

     

有窗口限制,   状态栏无法关闭   window.open创建的任何窗口   方法;它总是对所有人都可见   Internet Explorer窗口。区域   状态栏的信息   包含不能被欺骗或隐藏   从视图,使用户始终   知道在什么安全区   正在显示内容。“

这是关于IE 6的,就像它被引入时一样。 IE 7中有一些变化,但这主要与导航的变化有关,使open命令的某些参数工作方式不同或过时。

答案 2 :(得分:1)

由于安全模型的变化,不可能再拥有一个完全无铬的弹出窗口,并且只会忽略试图剥离所有镀铬的操作。你有没有考虑过使用JQuery来创建一个皮肤看起来像窗口的伪弹出窗口,给它拖动处理程序和一个关闭按钮?你可以优雅地降级到标准弹出窗口。

http://jqueryui.com/demos/draggable/

答案 3 :(得分:1)

进一步触及FatherStorm所说的,这里有一些选择:

How to generate a simple popup using jQuery

答案 4 :(得分:0)

大多数浏览器默认显示位置栏和状态栏,并且无法覆盖window.status。这样做是为了安全(防止网络钓鱼)。

答案 5 :(得分:0)

有关用户如何更改设置的更具体信息,该设置允许通过Javascript将状态和/或地址设置为隐藏或可见:

从IE安全标签的“自定义级别”对话框 - 向下滚动到:

“允许网站打开没有地址或状态栏的窗口”

根据是否将其设置为“禁用”或“启用” - 您将看到应用程序的不同行为。

据我所知,这适用于IE7,IE8和IE9