在MacOS Sierra上的野生动物园下载pdf文档时遇到问题。我们从服务器获取dataUrl,然后使用带有createObjectURL的$ window.open将文件推送到浏览器。但所有这些并不重要。但这是一个重现我的问题的片段:
myApp.controller('MyCtrl', function($scope, $window, $http) {
$scope.open = function() {
var windowy = $window.open('', '_blank');
console.log('1');
console.log(windowy);
$http.get('http://httpbin.org/delay/0').then(function(response) {
var windowx = $window.open('', '_blank');
console.log('2');
console.log(windowx);
});
}
});
我创建了一个JsFiddle来显示问题,网址是:zlib compressed
以下是chrome(mac)的日志 http://jsfiddle.net/ADukg/9023/
这是来自safari 10(mac)的日志
为什么$ http.get(...)中的safari窗口未定义。然后(...)
答案 0 :(得分:0)
我们以实用的方式解决了我们的问题,也许不是最优雅的解决方案,但现在它会做到
myApp.controller('MyCtrl', function($scope, $window, $http) {
$scope.open = function() {
var window = $window.open('', '_blank');
$http.get('http://httpbin.org/delay/0').then(function(response) {
console.log(window);
}, function() {
window.close();
});
}
});