2012-09-16 54 views
3

我遇到了一個與我正在開發的網站有關的特殊問題。問題只有發生在iPhone(safari)上。iPhone - Safari父窗口焦點問題

我的設置如下。

1)我有一個CLIENT頁面 - 顯示一個初始頁面,並有一個登錄按鈕。

2)用戶點擊登錄按鈕,並且被示出在LOGIN彈出/新窗口(這是通過使用jquery「提交」與目標=函數「_空白」)

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)用戶在登錄窗口輸入憑證並提交。呼叫服務器進行認證。一旦認證成功,我們要

  • 關閉登錄窗口
  • 重定向客戶端頁面,新的URL

4)一切工作按計劃進行,只是客戶端窗口(即創建的登錄彈出/新窗口),不會返回到全屏模式(在LOGIN窗口關閉後)。

如果我嘗試在登錄頁面javascript中放置一個window.opener.focus(),我將重點放在CLIENT頁面上,但LOGIN頁面不關閉(即使我將window.close放在窗口之前。 opener.focus())

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

    window.close(); 

    window.opener.focus() 
}); 

是否有關於如何我可以關閉登錄窗口,並在客戶端頁面重定向到一個新的URL,使客戶窗口全屏任何提示?

任何提示將不勝感激。

感謝

回答

0

請問像這樣的工作:

在揭幕戰:

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

用戶登錄後,在彈出的窗口中:

window.opener.closePopup(); 

也就是說,不有一個窗戶關閉本身,但讓開門人關閉彈出窗口。我試過這樣的東西,它似乎工作有時 ...我還沒有完全能夠隔離它爲什麼不起作用。我知道在我的情況下發生的一件事是用戶必須與彈出窗口進行交互以使window.opener.closePopup()工作...