如果想要弹出窗口而不被阻止, 必须是用户点击之后使用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/
分享到:
相关推荐
另外,可以发现,当window.open为用户触发事件内部或者加载时,不会被拦截,一旦将弹出代码移动到ajax或者一段异步代码内部,马上就出现被拦截的表现了。 原因分析&深入研究 当浏览器检测到非用户操作产生的新弹出...
自己遇到的使用window.open打开新窗口被拦截的几种情况(使用的chrome浏览器,其他浏览器未测): 第一次:window.open(www.jb51.net),打开了新窗口,但是页面并没有加载出来,需要回车才能出来 解决方法:页面地址...
ajax 异步请求成功后需要新开窗口打开 url,使用的是 window.open() 方法,但是会被浏览器给拦截了,需要用户点下。 二、问题分析 浏览器之所以拦截新开窗口是因为该操作并不是用户主动触发的,所以它认为这是不...
异步访问数据库.doc异步访问数据库.doc异步访问数据库.doc异步访问数据库.doc异步访问数据库.doc
前面开发项目时碰到一个问题,ajax 异步请求成功后需要新开窗口打开 url,使用的是 window.open() 方法,但是很可惜被浏览器给拦截了,怎么解决这个问题呢? 分析: 浏览器之所以拦截新开窗口是因为该操作并不是用户...
ASIC中的异步时序设计.pdf ASIC中的异步时序设计.pdf
C#异步操作...C#编程... 让大家更了解线程哦!!
使用Win32API实现Windows下异步串口通讯 目录:1....这意味着在同步执行时线程会被阻塞,从而导致效率下降。在重叠执行时,即使操作还未完成,调用的函数也会立即返回。费时的I/O操作在后台进行,这样线程就可以
同步D触发器和异步D触发器.pdf同步D触发器和异步D触发器.pdf同步D触发器和异步D触发器.pdf同步D触发器和异步D触发器.pdf同步D触发器和异步D触发器.pdf
JavaScript异步编程g.pdf,中文版的。JavaScript异步编程g.pdf,中文版的。
精彩编程与编程技巧-在VB中异步执行程序 ...
ECMAScript7async-await异步解决方案.docx
ATM原理与异步时分复用.pptx
2020,好不容易找来的资源,一共22章节,169页,很好很新的Twisted与异步编程教程。希望对大家有帮助,。
【Java分享客栈】一文搞定京东零售开源的AsyncTool,彻底解决异步编排问题。.doc
转差频率控制的异步电动机.doc
电子政务-导电层式异步电机转子.zip
异步传输模式.pptx