【问题标题】:javascript-how to open window (from hyperlink) and then close it with delay of 5 sec?javascript-如何打开窗口(从超链接)然后延迟 5 秒关闭它?
【发布时间】:2009-09-22 21:23:38
【问题描述】:

我正在尝试使用 java 脚本从超链接打开新窗口,然后在五秒钟内自动关闭它。它要么立即关闭,要么根本不关闭。以下是我使用的一些代码示例:

"function closeOnLoad(myLink){var newWindow=window.open(myLink);newWindow.onload=SetTimeout(newWindow.close(),5000);}" + LinkText + ""

【问题讨论】:

    标签: javascript


    【解决方案1】:

    您最好从父级关闭窗口,而不是在子级中定义 onload 处理程序。由于安全限制,您可能根本无权修改子窗口事件。

    function closeOnLoad(myLink)
    {
      var newWindow = window.open(myLink);
      setTimeout(
                 function()
                 {
                   newWindow.close();
                 },
                 5000
                );
      };
    }
    

    【讨论】:

    • 谢谢,这正是我想做的。
    【解决方案2】:

    您需要使用所谓的“闭包”来包装超时。这就像函数超时然后关闭被包装在另一个函数中。

    我不会在这里详细介绍,而是查找 javascript 和闭包并尝试看看它们是如何工作的。

    以下链接可帮助您入门:http://www.jibbering.com/faq/faq_notes/closures.html

    【讨论】:

      【解决方案3】:

      关闭窗口的代码应该在窗口的代码中:

      $(document).ready(function() {
          setTimeout(function() {
              window.close();
          },5000);
      })
      

      但是,您将收到一个弹出窗口,要求用户确认您是否尝试以这种方式关闭弹出窗口。

      【讨论】:

      • 当然假设他正在使用您提供的示例运行 jQuery。
      • 哈哈!你是对的...我倾向于将javascript和jQuery等同起来,谈谈习惯!
      【解决方案4】:

      卸载是 unload() 函数。 Here you have an example.

      【讨论】:

        猜你喜欢
        • 2020-09-17
        • 1970-01-01
        • 2018-05-02
        • 2011-06-05
        • 1970-01-01
        • 2013-11-26
        • 2014-07-20
        • 1970-01-01
        • 2021-07-09
        相关资源
        最近更新 更多