我用window.open()打开一个新窗口,将用户重定向到oauth登录页面.但是,在成功登录后,当用户被重定向回我的应用程序时,带有window.open调用的上一个窗口不会在ios中自行关闭.
在iPad上,它会关闭错误的窗口,在iPhone上它根本不会关闭窗口.该代码适用于Android和桌面版Chrome和Firefox.
经过多次考虑,我发现了一个修复程序(如下所示).如果有人有任何更好的想法或根本原因,请在此处发布.
解决方法:
这是我最终上班的原因……
从来没有得到window.close函数工作;甚至在如上所示的setTimeout中
我测试了这个:
Windows XP:Chrome20,Firefox12,IE8
Android姜饼:android浏览器
Android冰淇淋:Android浏览器,Firefox
Ipad:默认浏览器(我假设它的safari)
Iphone 3gs和4s:默认
<SCRIPT LANGUAGE="JavaScript">
function refresh() {
var sURL = unescape("http://(some web page)/");
window.location.replace(sURL);
}
function closeWindow() {
var isiPad = navigator.userAgent.match(/iPad/i) != null;
var isiPhone = navigator.userAgent.match(/iPhone/i) != null;
if (isiPad || isiPhone) {
setTimeout( "refresh()", 300 );
} else {
window.close();
}
}
</SCRIPT>
……和HTML代码…….
<p><input class="bigbutton" type="button" name="cancel" id="cancel" value="Cancel" onClick="closeWindow()"></p>
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!