【发布时间】:2016-01-12 20:06:41
【问题描述】:
这是我的代码:
$rootScope.http({
url: myUrl,
method: "POST",
data: "",
}).success(function (data) {
alert(data.uri); //for test, and I see correct uri shows up here.
window.open(data.uri, ''); return false; //window doesn't open.
});
window.open 在.success 内部不起作用,但在http post 方法之外起作用。回调函数出现问题。我在$.ajax 遇到了同样的问题并修复了它。但同样的解决方案不适用于 angular。
【问题讨论】:
-
控制台有错误吗?另外,您是否碰巧启用了弹出窗口阻止程序?我也有一种感觉
window不是你想的那样。 -
而 $window.open() 不起作用?
-
我正在为移动设备做这个开发,所以我看不到弹出窗口拦截器。我有一个不太好的解决方法,就是在回调之前执行
var win = window.open(),然后在.success内部,通过win.location = ...更改窗口的位置。但它并没有给出很好的视觉效果。我的意思是用户会看到一个空白页面一秒钟,然后跳转到实际的 url,这并不酷。 -
我上面提到的修复在 chrome 浏览器中工作正常,但在 safari 中更慢,我想知道有没有更好的方法来解决这个问题。如果没有,我将使用当前修复。
-
这在 Chrome 中对我来说很好用。很好奇,如果你只尝试
window.open()或window.open(data.uri)是否有效?
标签: javascript angularjs mobile window.open