所有!
我在Android'浏览器'浏览器上遇到父/子窗口通信问题。 Safari,Chrome,Firefox,IE(!!!),iOS,都不错! Android v4.1.1,不是那么多。
流程:
简单,对吧?
问题:Android 可以从孩子那里调用window.close()
,但是父母不知道关闭事件,即第3步永远不会发生。 在子窗口打开时,也许javascript在父级中被暂停? Javascript确实在父窗口中运行。这个问题有明确的解决方法或解决方法吗?
我的CoffeeScript :
openTwitterAuthWindow: (authURL) =>
@twitterWindow = window.open(authURL, "_blank", "width=550,height=420")
@checkInterval = window.setInterval(@checkChildWindow, 500)
checkChildWindow: () =>
if (@twitterWindow && @twitterWindow.closed)
alert("Excelsior!") # <-- Not called, unfortunately
window.clearInterval(@checkInterval)
@twGetLoginStatus()
只在子窗口中使用javascript :
<script type="text/javascript">
window.close();
</script>
提前致谢!
答案 0 :(得分:0)
正如您所建议的那样,父窗口似乎不知道子窗口何时关闭。但是,如果子窗口已关闭,则父节点对其的引用在该点将为null,因此以下内容应在Android中起作用:
openTwitterAuthWindow: (authURL) =>
@twitterWindow = window.open(authURL, "_blank", "width=550,height=420")
@checkInterval = window.setInterval(@checkChildWindow, 500)
checkChildWindow: () =>
if (!@twitterWindow || @twitterWindow.closed)
alert("Excelsior!")
window.clearInterval(@checkInterval)
@twGetLoginStatus()