我有一些 javascript 依赖于 window.open 和窗口间通信的使用(新的“子”窗口将成功/失败传达给“父”窗口)。
这种(窗口间通信)在大多数情况下都可以正常工作,但不适用于某些不支持窗口间通信的浏览器。示例包括Windows Phone和iPhone 的 UIWebView。
我目前进行客户端(基于 JavaScript)用户代理嗅探以检测这些场景 - 并回退到不同的代码路径以解决该问题。
我可以使用用户代理嗅探的替代方法吗?
需要明确的是,window.open 有效(其中有效的意思是“它打开请求的 url”)。不可靠的是使用 window.opener 和 postMessage 进行从“孩子”到“父母”的窗口间通信。