自动关闭弹出窗口的Javascript

Javascript to automatically close a popup window

本文关键字:窗口 Javascript      更新时间:2023-09-26

我有以下代码(如下所列)。简言之,当用户点击"All On"按钮时,它将打开yahoo.com的弹出窗口。我希望该窗口保持打开3秒,然后自动关闭,而无需用户进行额外的交互。

尽管弹出窗口完全按照要求打开,但当关闭尝试执行时,我会收到这个错误。

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

我不是一个程序员,无法理解这一点。最终,这将主要在Safari iOS上运行。而且,很明显,雅虎链接将被一个特定的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>

试试

<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>

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

您希望由open()返回Window对象。

<!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>