如何在新窗口完成加载后执行某些内容

How can I execute something after a new window has finished loading?

本文关键字:执行 加载 新窗口 窗口      更新时间:2023-09-26

我需要在完全加载后关闭一个新窗口。 我有:

my_window=window.open("http://www.yahoo.com", "_blank", "resizable=yes, scrollbars=yes, titlebar=yes, width=500, height=400, top=10, left=10");

我试过:

my_window.onload = my_window.close();

my_window.addEventListener('load', my_window.close(), true);

在关闭之前,既不等待my_window完成加载(它几乎立即关闭(。

第二个问题,我可以添加一个超时来继续关闭新窗口,以防页面停滞并且由于某种原因从未完全加载?

如果您的窗口位于同一域中,则可以使用以下命令:

 my_window.onload = function() {my_window.close();};

或者这个:

my_window.addEventListener('load', function() {my_window.close();}, true);

传递纯函数引用时,不要在函数名称后使用括号。 像以前一样使用括号会导致函数立即执行。

我还添加了匿名函数,以便my_window上下文可以保留到函数执行时间。

如果您的窗口不在同一域中,则可能存在同源保护问题,这些问题阻止您访问其他窗口的 javascript。