Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在图像的“新建”选项卡中打开链接单击“角度”,不使用弹出窗口阻止程序_Javascript_Html_Angularjs - Fatal编程技术网

Javascript 在图像的“新建”选项卡中打开链接单击“角度”,不使用弹出窗口阻止程序

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

我已经在我的网页上点击了一张图片。在ng click处理程序中,我使用

    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将绕过弹出窗口拦截器。正确的?