新窗口加载完成后如何执行某些操作?

时间:2013-10-04 05:23:27

标签: javascript html onload

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

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完成加载(它几乎立即关闭)。

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

1 个答案:

答案 0 :(得分:0)

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

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

或者这个:

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

传递普通函数引用时,不要在函数名后面使用parens。正如你所做的那样使用parens会导致函数立即执行。

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

如果您的窗口不在同一个域中,那么您可能会遇到same origin protections的问题,导致您无法访问其他窗口的javascript。