解决异步返回 window.open 会被IE阻止的问题(转)
如果想要弹出窗口而不被阻止, 必须是用户点击之后使用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);
?????};
转自:http://blog.163.com/eboge@126/blog/static/2570550720112310141148/