Javascript 自动关闭弹出窗口 window

Javascript to automatically close a popup window

我有以下代码(在下面列出)。简而言之,当用户单击按钮 "All On" 时,它将打开一个带有 yahoo.com 的弹出窗口 window。我希望 window 保持打开状态 3 秒,然后自动关闭,无需用户额外交互。

尽管弹出窗口完全按预期打开,但在尝试执行关闭时出现此错误。

script438: 对象不支持 属性 或方法 'close' lights.html (11,31)

我不是编码员,无法解决这个问题。最终,这将主要 运行 在 Safari iOS 上。而且,显然,yahoo link 将替换为特定的 IP 地址。谢谢。

<!DOCTYPE HTML>
<html>
<head>
  <title>Light Control Example</title>
  <script type="text/javascript">
    function allOn(){
     var win = 'http://www.yahoo.com';

      open(win,'1366002941508','width=1,height=1,left=5,top=3');

      setTimeout(function() { win.close();}, 3000);
    }
  </script>
</head>
<body>
  <h1>Lights Example</h1>

  <input type=submit value="ALL ON" onclick="allOn();" />

</body>
</html>

win 是一个字符串。
字符串显然没有 close() 方法。

您想要 open() 返回的 Window 对象。

试试这个

<script type="text/javascript">
function allOn(){
    var win = window.open('http://www.yahoo.com','windowname','width=1,height=1,left=5,top=3');
    setTimeout(function() { win.close();}, 3000);
}
</script>
<!DOCTYPE HTML>
<html>
<head>
  <title>Light Control Example</title>
  <script type="text/javascript">
    function allOn(){
    var myWindow = window.open('http://www.yahoo.com','1366002941508','width=600,height=400,left=5,top=3')
    setTimeout(function() { myWindow.close();}, 3000);
    }
  </script>
</head>
<body>
  <h1>Lights Example</h1>

  <input type=submit value="ALL ON" onclick="allOn();" />

</body>
</html>