所以,我在一个网站上看过这种方法(虽然我不记得了),它的工作原理如下:
首先,有一个简单的登录表单页面。但是当您单击表单的登录按钮时,如果用户和密码的验证是肯定的,并且来自服务器的响应也是肯定的,则会出现一个新的弹出窗口(其中包含用javascript编写的应用程序 - {{3然后关闭浏览器的当前选项卡(登录表单页面)。
在我看来,这是一种很好的方法,因为ExtJS
是单页面应用程序模式,功能强大,足以运行完整AJAX
,没有可见的重定向。此外,弹出方案消除了浏览器页面控制按钮(后退,前进,刷新),地址栏是只读的。
现在,我试图通过使用ASP.NET作为服务器端脚本语言来帮助重现这一点,在ExtJS中作为主要应用程序。因此,结果如下:
Web服务公开了用于登录的方法以及其他方法,它始终返回JSON
个响应。在打开弹出窗口并关闭窗口之前,必须设置会话变量(如果登录成功)。
这就是问题所在:
如果登录成功,我如何完成打开弹出窗口并关闭当前窗口/标签的方案?任何帮助,提示,参考,建议,批评都完全是我的意思我期待着。
谢谢!
答案 0 :(得分:1)
你应该能够在打开另一个窗口后关闭当前窗口。
window.open('new window url'); window.close();
我在我的盒子上尝试了这个,它在chrome和safari上运行良好
<input type="button" onClick="window.open('popop.html'); window.close();" value="open" />
答案 1 :(得分:0)
如果你真的不需要,请远离打开弹出窗口。所有现代浏览器都设置为阻止您默认打开弹出窗口。
AFAIK打开新窗口(带有目标属性)的唯一100%场景是用户点击的超链接。
某些浏览器会屏蔽window.open()
甚至document.getElementById("hiddenLink").click()
。
这样做有什么真正的好处,还是只是该网站的虚假新奇?你陈述的原因在一个窗口的情况下都很好。