Javascript弹出窗口无法正常工作

时间:2012-05-12 22:49:06

标签: javascript html popup

以下页面有什么问题?

<html>
<head>
<script type="text/javascript">
function openWin(url, w, h)
{
var left = (screen.width/2)-(w/2);
var top = (screen.height/2)-(h/2);
w=window.open(url, '_blank', 'width='+w+', height='+h+', scrollbars=no, menubar=no, resizable=no, location=no, toolbar=no, top='+top+', left='+left+', 'false');
w.focus();
}
</script>
</head>
<body>

<input type="button" value="Open window" onclick="openWin(about:blank, 200, 200)" />

</body>
</html>

每当我点击按钮时都没有任何反应。

使用chrome

6 个答案:

答案 0 :(得分:4)

试试这个:

<html>
<head>
<script type="text/javascript">
function openWin(url, w, h)
{
var left = (screen.width/2)-(w/2);
var top = (screen.height/2)-(h/2);
w=window.open(url, '_blank', width='+w+', height='+h+', scrollbars='no', menubar='no', resizable='no', location='no', toolbar='no', top='+top+', left='+left+', 'false');
w.focus();
}
</script>
</head>
<body>

<input type="button" value="Open window" onclick="openWin('about:blank', 200, 200); return false;" />

</body>
</html>

答案 1 :(得分:2)

您有2个语法错误,一个在您的onClick属性中,您的about:blank未被引用 二,在window.open中你在第二个参数的末尾有+'你也有第三个参数作为字符串,它应该是布尔值。

答案 2 :(得分:1)

请改为尝试:

<input type="button" 
       value="Open window" 
       onclick="openWin('about:blank', 200, 200);" />

我认为函数调用中URL参数中的冒号导致了问题 - 如果它是一个字符串,它应该在引号中。

编辑:添加了一个半结肠 - 这似乎对我有用。

答案 3 :(得分:1)

false行末尾的w=window.open()未正确引用/连接。

答案 4 :(得分:0)

这里最后一个参数格式不正确并更正了删除'

   w=window.open(url, '_blank', 'width='+w+', height='+h+', scrollbars=no, menubar=no, 
    resizable=no, location=no, toolbar=no, top='+top+', left='+left+', false');

在html调用代码中,

  <input type="button" value="Open window" onclick="openWin('http://www.google.com', 200, 200)" />

在网址部分,您可以拥有绝对网址或相对网址。

希望这会有所帮助..

答案 5 :(得分:0)

一个独特的相关琐事:
至少在最新版本的IE,9.0.8112.16241(vista / win7)和8.0.6001.18072(xp)中,以编程方式执行window.open(‘about:blank’),可编程focus()将卡在地址栏中,显示“<强>关于:空白
注意: window.open(”)空字符串网址与window.open(‘about:blank’)相同。

根据IE安全设置,添加选项location=no可以解决此问题  Allow websites to open windows without address or status bars

然而他们默认严重(强制地址栏)。最简单的我发现,用户将我们的网站在其安全设置中设置为“受信任”,默认的“中等”设置不会强制地址栏显示。

在IE 8中使用虚拟URI javascript:popup=1确实可以解决此问题,但可能会根据可能对您无效的设置在新选项卡中打开。

相关的自定义安全设置:

  • 其中:工具 - >互联网选项 - >安全 - >自定义级别 - &gt;杂项
  • 价值:允许网站打开没有地址或状态栏的窗口: 使

注意:我的是一个遗留的基于网络的“应用程序”,它采用了合法有用的弹出窗口设计,这是有益的(没有人将它们从“Word”中删除)。对于我们这些受损的人来说,这是一个足够的挑战,因为这个有用的UI机制被诈骗者和黑客所破坏,我恳求你们拒绝进一步用非生产性的“不要使用弹出窗口”切向感叹来打击我们。

测试代码(onloadJSServerSidePage有效,onloadJSClientSidePage有问题):

http://forus.com/csm/code/iepopup/testPopupFocus.html

onloadJSServerSidePag的可选“testPopupFocusContent.html”:

http://forus.com/csm/code/iepopup/testPopupFocusContent.html