使用Javascript自动打开弹出新窗口

5

如何使用Javascript在页面加载时打开弹出新窗口?

我希望当网站加载时,它会自动打开弹出的新窗口。

我使用以下代码:

<script type="text/javascript">
function open_on_entrance(url,name)
{ 
   window.open('http://www.google.com','google', ' menubar,resizable,dependent,status,width=300,height=200,left=10,top=10')
}
</script>
<body onload="open_on_entrance()"></body>

无法正常工作?


你不能这样做。这是浏览器的安全功能。一些函数,如打开弹出窗口,必须绑定到用户动作,如单击按钮。您可以弹出<div>,这可能是实现您想要的方式。 - user1864610
谢谢@MikeW。但是我想要显示新窗口。没有其他方法可以显示它吗? - mrTom
如果你_必须_要一个新窗口,那么你就需要让用户点击某个东西——一个丑陋的“点击此处进入”,在点击处理程序中使用window.open()应该可以工作,但看起来会很糟糕。或者,弹出一个带有<iframe><div>可能可以实现你想要的效果。 - user1864610
我测试了你的代码,似乎在Chrome版本36.0.1985.125 m上运行良好。确保你没有启用弹出窗口拦截器。我也在我的一些代码中使用了类似的功能,它也可以正常工作。这是链接https://dev59.com/m4Hba4cB1Zd3GeqPUKhw,我唯一遇到的问题是如果弹出窗口在重新打开之前被最小化了,那么就无法聚焦在弹出窗口上。 - dishwasherWithProgrammingSkill
4个回答

0

试试这个 -

<script type="text/javascript">
window.onload = function() {
   window.open('http://upcominggames2015.blogspot.in/','new games release',' menubar=0, resizable=0,dependent=0,status=0,width=300,height=200,left=10,top=10')
}
</script>

将此代码粘贴到您网站的头部。

0

你不能这样做。这是浏览器的安全特性。尝试使用 jQuery UI: Dialog

http://jqueryui.com/dialog/

例子:

    <html>
      <head>
          <meta charset="utf-8">
          <title>jQuery UI Dialog - Default functionality</title>
          <link rel="stylesheet" href="//code.jquery.com/ui/1.10.4/themes/smoothness/jquery-ui.css">
          <script src="//code.jquery.com/jquery-1.10.2.js"></script>
          <script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
          <script>
          $(function() {
              $( "#dialog" ).dialog();
          });
          </script>
      </head>
      <body>
        <div id="dialog" title="Basic dialog">
            <p>This is the default dialog which is useful for displaying information. The dialog window can be moved, resized and closed with the 'x' icon.</p>
        </div>
      </body>
    </html>


可以的。URL缩短器可以做到这一点。 - Cropis

-1
var newwindow;
function poptastic(url)
{
    newwindow=window.open(url,'name','height=400,width=200');
    if (window.focus) {newwindow.focus()}
}

3
虽然这段代码可能解决问题,但包括解释真正有助于提高您的帖子质量。请记住,您正在回答未来读者的问题,而这些人可能不知道您的代码建议原因。 - Rosário Pereira Fernandes

-1
<html>
<head>
<script type="text/javascript">
window.onload = function() {
   window.open('http://www.google.com','google',' menubar=0, resizable=0,dependent=0,status=0,width=300,height=200,left=10,top=10')
}
</script>
<body>
</body>
</head>
</html>

谢谢你的回答,但是它没有起作用。你还有其他的想法吗? - mrTom
这个不会起作用 - 它与浏览器安全有关。 - user1864610
@MikeW - 这段代码已在Google Chrome和IE 10中进行了测试,并成功运行。 - babonamu
只有在弹出窗口拦截器关闭的情况下才能正常工作。弹出窗口拦截器通常默认开启,需要用户特定操作才能禁用它们。mrTom已经表示这对他没有起作用。 - user1864610
@MikeW - 这不是因为弹出窗口的基本限制吗? - babonamu

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