首页 > 解决方案 > Javascript 代码每 10 分钟运行一次并在加载后关闭调用的窗口

问题描述

我想要一个可以每 10 分钟打开一次链接并在选项卡完全加载后关闭打开的选项卡的 javascript,我尝试了以下代码并且它工作正常,但是选项卡会立即关闭,想要在它完全加载后关闭它。

var mywindow;
setInterval(function() {
  mywindow = window.open("https://www.google.com");
  mywindow.close();
}, 2000);

标签: javascriptjqueryhtml

解决方案


如果页面位于不同的域中,您将无法侦听要加载的页面,除非您可以在该其他域上运行脚本。在您不拥有的页面上执行此类操作的唯一方法是让用户拥有一个允许该功能的浏览器扩展程序,例如 Tampermonkey,并使用以下用户脚本:

// ==UserScript==
// @name         Close Google
// @match        https://www.google.com
// @grant        none
// ==/UserScript==

// this will run automatically once the DOM is loaded
window.close();

但是要求脚本的每个用户都这样做并不是很合理 - 另一种方法是简单地等待一段时间,一秒钟或几秒钟,以确保页面已加载,然后.close()

setInterval(function () {
    const newWindow = window.open("https://www.google.com");
    setTimeout(() => {
        newWindow.close();
    }, 3000);
}, 10 * 60_000);

如果您希望链接每 10 分钟打开一次,请传递10 * 60_000给外部setTimeout,而不是2000.


推荐阅读