【发布时间】:2014-06-28 15:57:32
【问题描述】:
我正在尝试让我的网络应用打开另一个页面(它是由单击按钮触发的,但需要先进行一些其他处理)。
它可以在我的桌面上随处使用。在移动 Chrome 上,它会阻止它作为弹出窗口并让我知道它这样做了。在移动 Safari 上,它甚至没有告诉我弹出窗口被阻止。我尝试过像这样的同步 AJAX 调用:
$("#somebutton").click(function() {
$.ajax({
url: myAppURL,
async: false,
dataType: "text",
success: function() {
window.open("http://google.com");
}
});
});
点击后更直接地打开窗口,稍后更改其位置:
var myWindow = window.open('')
...
myWindow.location = 'http://google.com'
但这也不起作用(它在桌面上起作用)。我完全没主意了。有没有人找到解决方法?
【问题讨论】:
-
我现在正在尝试解决同样的问题(在 Iphone 4 上测试)。到目前为止,我尝试了几种技术(例如
window.postMessage从开启窗口发送消息),但它们都没有奏效。我会及时通知你。 -
@BausTheBig 谢谢。当我尝试第二件事时,首先保存窗口对象,它可以在我的桌面上运行,但在 iPhone 上它会打开新窗口并且之后永远不会更改 url。
-
对我来说也一样。因为父窗口(启动 window.open)不再是焦点,所以 Safari 上的 Javascript 被阻止。
-
@BausTheBig 如果有办法让父窗口保持焦点,那将解决问题,对吗?这就是我现在正在寻找的东西
-
当您使用
window.open并打开弹出窗口时,您将失去对父窗口的关注。所以这不是一个选择,我猜。
标签: javascript jquery ios mobile web-applications