JavaScript 从 target=_blank 提交的表单中检索窗口句柄


JavaScript retrieve window handle from target=_blank submitted form

我正在尝试创建一个自动脚本,让我从网站下载各种文件,然后将它们上传到新网站。该脚本将允许多个用户同时将内容从旧网站复制到新网站。

我最初尝试使用 AJAX 一次下载一个文件,并将文件数据存储在变量中,然后将此变量(文件数据(上传到第二个域。下载工作正常,但第二个域上的 PHP 页面总是在上传后回 500 请求错误消息,尽管在 PHP 中设置了各种文件大小参数和处理时间参数。这意味着我甚至看不到 PHP 页面响应的内容进行调试,并继续开发该方法。

在花了很长时间尝试解决此问题(并且惨遭失败(之后,我决定让用户正常下载旧文件,然后使用表单上传文件。由于我希望脚本在上传文件时继续运行,因此我决定将表单目标设置为"_blank"以打开一个新选项卡(用于上传文件(。

如何检索使用 target="_blank" 窗体打开的窗口句柄,以测试窗口何时关闭?我不需要访问Windows HTML,我只想检查它何时关闭。表单打开的页面与打开它的表单不在同一域中,但在第二个域 PHP 页面上,"访问控制-允许-源"标头设置为"*"。

我认为

你不能检索窗口句柄,但你可以使用 Javascript 来保留对窗口的引用并检查窗口是否关闭。你必须像这样用Javascript打开你的窗口

var uploadWindow = window.open("http://www.google.com");

然后,您可以使用计时器上的函数来监视窗口是否已关闭:

var interval = 250;
setTimeout(checkClose, interval);
function checkClose() {
    if (uploadWindow.closed) {
        // Code to run when window is closed
    }
    else {
        setTimeout(checkClose, interval);
    }
}

我希望这可以有所帮助