window openは解決を阻止されました.

1037 ワード

もしウィンドウをイジェクトしたいならば、ブロックされずに、ユーザーがクリックしてからwindow.openを使ってもいいですが、クリックした後に非同期の処理があり、操作が成功したらまたポップアップします.この新しいウィンドウは停止されます.
    したがって、処理を変更するためには、クリックした後に空白の新しいウィンドウを開き、非同期処理が終わったらターゲットパスを設定すればいいです.
例えば:
tempFunc=function(){
      var item=prodGrid.getItem(0);
      if(!item)return;
      var orderItemId=prodStore.getValue(prodGrid.getItem(0),'purchaseOrderItemId');
      var p=window.open('about:blank');
      var xhrArgs = {
                 url: "buyFromPreparation.action?orderItemId="+orderItemId,
                    load: function(data){
         prodStore.save();
         prodStore.url='getPpi.action?currentCategory1='+currentCategory1;
         prodStore.close();
         prodGrid._refresh();
         if(!p)alert("             ,             。");
         p.location='checkOrder.action?orderId='+data;         
        },
                    error: function(error) {alert(error);}
             };      
      var d= dojo.xhrGet(xhrArgs);
     };