iPhone - Safari父窗口焦点问题

时间:2012-09-16 04:49:41

标签: javascript iphone safari window focus

我正在开发一个网站的特殊问题。问题在iPhone(safari)上发生。

我的设置如下。

1)我有一个CLIENT页面 - 显示一个初始页面,并有一个登录按钮。

2)用户点击LOGIN按钮,并显示一个LOGIN弹出窗口/新窗口(这是通过使用jquery'submit'函数发布表单来创建的,其中target ='_ blank')

CLIENT.html

var formData = '<form style="display: none; margin: 0; padding: 0; border-width: 0; overflow: hidden;" id="MyFormId" action="https://MYSERVER.COM/v2/widgets" method="POST" target="_blank"><input type="hidden" name="action" value="connect"/><input type="hidden" name="referringURL" value="http://MYCLIENT.com/ClientPage.html"/><input type="hidden" name="cartOwnerId" value="A2R6QUFKT17A1O"/></form>';


jQuery("#"+this.getLocation()).append(formData);


jQuery("#"+formIdName).submit();      

3)用户在LOGIN窗口中输入凭据,然后提交。调用SERVER进行身份验证。在SUCCESSFUL身份验证上,我们希望

  • 关闭登录窗口
  • 将客户页面重定向到新网址

4)一切都按计划运行,除了客户端窗口(创建LOGIN弹出窗口/新窗口),不会返回全屏(在LOGIN窗口关闭后)。

如果我尝试在LOGIN页面javascript中放置一个window.opener.focus(),我会关注CLIENT页面,但是LOGIN页面没有关闭(即使我把window.close放在window.opener之前) .focus())

LOGIN html
jQuery(document).ready(function() {
  ...
  ...

    window.close();

    window.opener.focus()
});

是否有关于如何关闭LOGIN窗口,并将客户端页面重定向到新URL并使客户端窗口全屏显示的提示?

任何提示都将不胜感激。

由于

1 个答案:

答案 0 :(得分:0)

这样的事情是否有效:

在揭幕战中:

window.closePopup = function () {
  window.popup.close();
  window.focus();
}
// open login popup
window.popup = window.open(...);

用户登录弹出窗口后:

window.opener.closePopup();

那就是,没有一个窗口关闭自己,但让开启者关闭弹出窗口。我尝试了类似这样的东西,它似乎工作有时 ...我还没能完全理解为什么它不起作用。我知道在我的情况下发生的一件事是用户必须与弹出窗口进行交互才能使window.opener.closePopup()正常工作......