当窗口已经打开时,window.onload不会触发

时间:2012-07-27 04:18:27

标签: javascript jquery events onload

我正在打开一个新窗口并为其分配一个这样的onload事件:

var wconsole = window.open("console?cachebust=" + (new Date()).getTime(), "consolewin");
$(wconsole).load(function(){
  // event code here
});

但是,如果我再次进行相同的调用(即使用相同的参数再次调用window.open),则永远不会调用load函数,即使刷新窗口也是如此。

任何想法为什么?

4 个答案:

答案 0 :(得分:0)

试试这个。不确定,但值得一试。

var wconsole =NULL;
wconsole =  window.open("console?cachebust=" + (new Date()).getTime(), "consolewin");

$(wconsole).load(function(){
  // event code here
}

答案 1 :(得分:0)

你错过了一个结束括号,也许这就是问题所在。

var wconsole = window.open("console?cachebust=" + (new Date()).getTime(), "consolewin");
$(wconsole).load(function(){
    alert('test');
});

答案 2 :(得分:0)

正如我在评论中所述,如果窗口已经打开,你期望它的加载功能是什么?它已经装好了。关闭窗口,再次加载窗口。

您可以使用window.close功能关闭窗口,然后再次打开它。

wconsole.close()

答案 3 :(得分:-1)

您确定不是$(wconsole).onload(function(){...}

吗?

在任何情况下都可以保证失败,因为重新加载会破坏所有内容,包括任何脚本(但是如果Grease Monkey具有持久脚本),那么任何已定义的函数都会被重新定义。除非重新加载重新定义所需的功能,否则游戏将丢失。

示例:

javascript:
void(window.open("data:text/html,
<html>
<a href=\"javascript:alert('Here today ...');location=location.href;alert('gone ...');\">
reload </a> shows only 1 alert <br/>
(2nd may appear but disappears automatically once window has refreshed)<br/><br/>
as goes `alert` so do other `window` functions like `onload`<br/><br/><br/><br/>
<a href=\"javascript:alert('Now you see ...');self.close();alert('NOT!?');\">
choked or croaked?</a> only 1 alert is seen<br/>
</html>"))

测试:

 window.navigator.userAgent =  
 Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:11.0) Gecko/20100101 Firefox/11.0

REF:
Open a new browser window on close of current window if user confirms to close current window

书签:
window.onload not firing when window is already open