Javascript 在图像的“新建”选项卡中打开链接单击“角度”,不使用弹出窗口阻止程序
我已经在我的网页上点击了一张图片。在ng click处理程序中,我使用Javascript 在图像的“新建”选项卡中打开链接单击“角度”,不使用弹出窗口阻止程序,javascript,html,angularjs,Javascript,Html,Angularjs,我已经在我的网页上点击了一张图片。在ng click处理程序中,我使用 ServiceData.getProductDetails(product).then(function(data) { $scope.url = data; var win = window.open($scope.url, '_blank'); win.focus(); }); getProductDetails: function
ServiceData.getProductDetails(product).then(function(data) {
$scope.url = data;
var win = window.open($scope.url, '_blank');
win.focus();
});
getProductDetails: function(product) {
var promiseProductDetails;
if (productDetailsArr[product.id] == undefined) {
var ajaxUrl = productsByIDarray[product.id]['detailsview'];
try {
// $http returns a promise, which has a then function, which also returns a promise
promiseProductDetails = $http.get(ajaxUrl).then(function(response) {
return response;
});
} catch(err) {
}
// Return the promise to the controller
return promiseProductDetails;
} else {
var deferred = $q.defer();
deferred.resolve(productDetailsArr[product.id][url]);
return deferred.promise;
}
}
因此,单击会启动一个ajax调用,以获取用户应该去的URL(目标URL是动态的)。我已经使用angular promise将ajax调用为sync。这会导致web浏览器将其视为不受信任,并阻止弹出窗口。我不想在html中用锚定标记括住img标记。我是否有任何选项可以避免弹出窗口阻止程序?将ajax调用移动到用户与page交互的较早点是解决方案。将ajax调用移动到用户与page交互的较早点是解决方案。代码的其余部分是什么。是否还有其他原因导致延迟?是的,涉及ajax调用。我已经使用promise发出了同步请求,但仍然在点击弹出窗口拦截器。我已经在我的问题中添加了完整的代码,这是你的问题,有一个延迟,延迟意味着弹出窗口拦截器会阻止它。因此,为了避免弹出窗口拦截器,我应该在用户单击图像之前将ajax调用的响应缓存在JS中,然后单击window.open将绕过弹出窗口拦截器。对吗?剩下的代码是什么。是否还有其他原因导致延迟?是的,涉及ajax调用。我已经使用promise发出了同步请求,但仍然在点击弹出窗口拦截器。我已经在我的问题中添加了完整的代码,这是你的问题,有一个延迟,延迟意味着弹出窗口拦截器会阻止它。因此,为了避免弹出窗口拦截器,我应该在用户单击图像之前将ajax调用的响应缓存在JS中,然后单击window.open将绕过弹出窗口拦截器。正确的?