1

我正在打开一个新窗口并为其分配一个 onload 事件,如下所示:

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

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

任何想法为什么?

4

4 回答 4

0

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

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

$(wconsole).load(function(){
  // event code here
}
于 2012-07-27T04:45:44.853 回答
0

正如我在评论中所说,如果窗口已经打开,您希望它的加载功能做什么?它已经加载了。关闭窗口,它会再次加载窗口。

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

wconsole.close()
于 2012-07-30T01:42:14.237 回答
0

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

var wconsole = window.open("console?cachebust=" + (new Date()).getTime(), "consolewin");
$(wconsole).load(function(){
    alert('test');
});
于 2012-07-27T07:00:22.603 回答
-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:
如果用户确认关闭当前窗口,则在关闭当前窗口时打开一个新的浏览器窗口

书签:
window.onload 在窗口已经打开时不会触发

于 2012-10-07T10:21:13.503 回答