我需要在完全加载后关闭一个新窗口。我有:
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完成加载(它几乎立即关闭)。
次要问题,我是否可以添加超时以继续关闭新窗口,以防页面停滞并且由于某种原因从未完全加载?
答案 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。