我正在打开一个新窗口并为其分配一个这样的onload事件:
var wconsole = window.open("console?cachebust=" + (new Date()).getTime(), "consolewin");
$(wconsole).load(function(){
// event code here
});
但是,如果我再次进行相同的调用(即使用相同的参数再次调用window.open
),则永远不会调用load函数,即使刷新窗口也是如此。
任何想法为什么?
答案 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