2015-07-20 24 views
1

我已經在我的網頁中設置了一個圖像。在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。我使用角度承諾將ajax調用爲同步。這會導致Web瀏覽器將其視爲不可信,並阻止彈出窗口。我不想用html中的標籤來附帶img標籤。我是否有可用的選項來避免彈出式窗口攔截器?

+0

代碼的其餘部分是什麼。還有什麼是造成延誤的原因嗎? – epascarello

+0

是的,有涉及阿賈克斯調用。我已經使用諾言同步請求,但仍然彈出阻止程序。我在我的問題中添加了完整代碼 – Sandeep

+0

這是您的問題,存在延遲,延遲意味着彈出阻止程序阻止它。 – epascarello

回答

0

將ajax調用移動到用戶與頁面的早期交互點是解決方案。

相關問題