如果想要弹出窗口而不被阻止, 必须是用户点击之后使用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/
分享到:
相关推荐
在JavaScript中,`window.open()` 是一个非常常用的函数,用于打开一个新的浏览器窗口或者标签页。通常,`window.open()` 的使用方式是 `window.open(url, target, features)`,其中 `url` 是要打开的页面的地址,`...
然而,由于浏览器之间的差异,实现跨浏览器的异步验证可能会遇到兼容性问题。本篇文章将深入探讨如何解决这些问题,特别关注一个名为"dbank.js"的JavaScript库。 异步验证通常涉及AJAX(异步JavaScript和XML)技术...
4. **第三方库或服务**:有时,开发者会使用一些第三方库,如`open-browser`或在线服务,它们提供了跨浏览器启动的抽象层。这些库通常通过用户脚本或者服务器端代码来工作。 根据描述,压缩包中的资源可能包含了一...
- **异步**:异步模式下,程序不会因等待请求结果而停止执行,而是继续处理其他任务,当请求完成后,会通过回调函数或事件触发来处理返回的数据,提高了用户体验。 **1.3 AJAX的实现步骤** 1. 使用HTML和CSS构建...
}else if (window.ActiveXObject){// code for IE5 and IE6 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } } function loadXMLDoc() { loadHttpRequest(); if (xmlhttp!=null){ ...
在前端开发中,FormData对象是HTML5引入的一个重要特性,用于构建和发送数据,通常与...在遇到“window.FormData未定义”的问题时,记得检查浏览器兼容性、执行环境以及代码本身,通常能快速找到解决方案。
- **GET请求的缓存问题**:IE浏览器会缓存GET请求。为防止这种情况,可以在URL后添加一个随机数或者时间戳,如`'check_uname.do?username=tom×tamp=' + new Date().getTime()`。 ### 乱码问题与解决 - **POST...
本文主要探讨的是IE(Internet Explorer)与火狐(Firefox)这两种浏览器在JavaScript编程中所遇到的一些常见兼容性问题,并提出相应的解决方案。 #### 二、关键兼容性问题及解决方法 ##### 1. 获取DOM元素的方式 ...
### Ajax 异步 JS 方法详解 #### 一、Ajax 概念与原理 Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。通过在后台与服务器进行少量数据交换,Ajax 可以...
当请求完成并返回结果时,通常会调用该处理函数。 5. **处理响应**: - `readyState`属性表示请求的当前状态,共分为5个状态值: - 0:未初始化 - 1:已打开 - 2:已发送 - 3:正在处理 - 4:已完成 - `...
作为一款轻量级的弹窗窗口解决方案,layer能够帮助开发者快速构建各种类型的弹出层,如提示信息、对话框、加载层、iframe页面等,极大地提高了开发效率。 首先,我们来了解layer的基本使用。在layer-v3.0.3版本中,...
### XMLHttpRequest的用法及AJAX同步与异步的区别 #### 一、XMLHttpRequest简介 `XMLHttpRequest`对象是实现客户端与服务器端异步交互的重要工具之一。它允许JavaScript执行HTTP请求,无需重新加载整个网页即可从...
} else if (window.ActiveXObject) { // IE fallback var xhr = new ActiveXObject("Microsoft.XMLHTTP"); xhr.open("GET", URL.createObjectURL(file), true); xhr.responseType = "blob"; xhr....
然后,`request.open()`方法初始化一个POST请求,`request.onreadystatechange`设置为`processResponse`函数,该函数会在请求状态改变时被调用。最后,`request.send(null)`发送空的请求体,因为在这个例子中,数据...
### Ajax自己写的JS异步请求方法 #### 一、引言 在Web开发中,异步请求是一项非常重要的技术,它允许网页在不重新加载整个页面的情况下与服务器进行交互,从而提升用户体验。其中,Ajax(Asynchronous JavaScript ...
// IE和FF都支持异步模式下的XMLHttpRequest if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { // 处理响应数据 } ``` 需要注意的是,在同步模式下(即`xmlHttp.open("GET", "xxx.aspx?id=xx", false);`)...
2. 使用xhr.open()方法配置请求类型(GET或POST)、请求的URL以及是否异步。 3. 使用xhr.send()方法发送请求。对于GET请求,通常不传递参数,而POST请求则需要传递字符串类型的数据。 4. 使用xhr.onreadystatechange...
echarts-gl 中使用的地图类型同 geo 组件相同(ECharts 中提供了两种格式的地图数据,一种是可以直接 script 标签引入的 js 文件,引入后会自动注册地图名字和数据。还有一种是 JSON 文件,需要通过 AJAX 异步加载后...