我遇到了java脚本中的一个关键问题.....帮我解决这个问题.......
我已经在一个jsp页面中写了onload函数,比如login.jsp ...
在tat函数中,我使用window.open方法再次使用相同的jsp页面login.jsp打开一个新窗口,并禁用工具栏......
现在发生的事情就是当我在新窗口再次打开同一页面时,显然tat body onload功能将再次被调用并在无限期打开一个新窗口........
但我想要的是,一旦打开一个新窗口,我必须删除tat jsp页面中的onload函数..
是否可以在新窗口中打开时删除tat onload函数?
任何人都可以想出一个想法或一点点代码来使用java脚本吗?
答案 0 :(得分:2)
由于它是同一页面,因此快速解决方法可能是在执行window.open
之前检查当前窗口是否已以编程方式打开,如下所示:
window.onload = function () {
if (!window.opener) {
window.open(/*...*/);
}
};
上面的代码检查window.opener
属性是否有值。
此属性包含对打开此当前窗口的窗口的引用,当然,如果当前窗口尚未以编程方式打开,则它将包含null
。
总之,window.open
方法只会被调用一次。
答案 1 :(得分:1)
看来你的方式错了。
虽然可能有一种方法可以在实际运行之前拦截onload函数(一些javascript库可以帮助你为OnDocumentReady事件添加一个处理程序),但也许你应该在服务器端做一些事情。例如 - 如果你不想在第二个窗口中弹出窗口,那么一种方法是设置一个querystring参数,告诉服务器不要将该属性添加到body标签。
您还可以查看推荐人。如果用户来自该页面,则不要将该属性添加到body标签。
答案 2 :(得分:0)
尝试使用弹出式JSP查看您是否来自有问题的页面。如果是这样,请设置window.onload = null
- 更好的是,不要在该JSP中设置任何内容。