`
eoasis
  • 浏览: 78503 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

解决异步返回 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/

分享到:
评论

相关推荐

    window.open()实现post传递参数

    在JavaScript中,`window.open()` 是一个非常常用的函数,用于打开一个新的浏览器窗口或者标签页。通常,`window.open()` 的使用方式是 `window.open(url, target, features)`,其中 `url` 是要打开的页面的地址,`...

    解决异步验证 浏览器不兼容的问题

    然而,由于浏览器之间的差异,实现跨浏览器的异步验证可能会遇到兼容性问题。本篇文章将深入探讨如何解决这些问题,特别关注一个名为"dbank.js"的JavaScript库。 异步验证通常涉及AJAX(异步JavaScript和XML)技术...

    谷歌浏览器js打开IE浏览器.rar

    4. **第三方库或服务**:有时,开发者会使用一些第三方库,如`open-browser`或在线服务,它们提供了跨浏览器启动的抽象层。这些库通常通过用户脚本或者服务器端代码来工作。 根据描述,压缩包中的资源可能包含了一...

    12JavaScript异步Ajax与json总结.docx

    - **异步**:异步模式下,程序不会因等待请求结果而停止执行,而是继续处理其他任务,当请求完成后,会通过回调函数或事件触发来处理返回的数据,提高了用户体验。 **1.3 AJAX的实现步骤** 1. 使用HTML和CSS构建...

    ajax异步请求

    }else if (window.ActiveXObject){// code for IE5 and IE6 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } } function loadXMLDoc() { loadHttpRequest(); if (xmlhttp!=null){ ...

    FormData:FormData支持其中window.FormData未定义

    在前端开发中,FormData对象是HTML5引入的一个重要特性,用于构建和发送数据,通常与...在遇到“window.FormData未定义”的问题时,记得检查浏览器兼容性、执行环境以及代码本身,通常能快速找到解决方案。

    ajax异步请求小结

    - **GET请求的缓存问题**:IE浏览器会缓存GET请求。为防止这种情况,可以在URL后添加一个随机数或者时间戳,如`'check_uname.do?username=tom&timestamp=' + new Date().getTime()`。 ### 乱码问题与解决 - **POST...

    IE、火狐兼容性问题

    本文主要探讨的是IE(Internet Explorer)与火狐(Firefox)这两种浏览器在JavaScript编程中所遇到的一些常见兼容性问题,并提出相应的解决方案。 #### 二、关键兼容性问题及解决方法 ##### 1. 获取DOM元素的方式 ...

    Ajax 异步 js方法

    ### Ajax 异步 JS 方法详解 #### 一、Ajax 概念与原理 Ajax(Asynchronous JavaScript and XML)是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。通过在后台与服务器进行少量数据交换,Ajax 可以...

    AJAX异步通信技术学习笔记

    当请求完成并返回结果时,通常会调用该处理函数。 5. **处理响应**: - `readyState`属性表示请求的当前状态,共分为5个状态值: - 0:未初始化 - 1:已打开 - 2:已发送 - 3:正在处理 - 4:已完成 - `...

    layer-v3.0.3 弹层组件文档和demo

    作为一款轻量级的弹窗窗口解决方案,layer能够帮助开发者快速构建各种类型的弹出层,如提示信息、对话框、加载层、iframe页面等,极大地提高了开发效率。 首先,我们来了解layer的基本使用。在layer-v3.0.3版本中,...

    用法 XMLHttpRequest的用法 ajax同步和异步的区别

    ### XMLHttpRequest的用法及AJAX同步与异步的区别 #### 一、XMLHttpRequest简介 `XMLHttpRequest`对象是实现客户端与服务器端异步交互的重要工具之一。它允许JavaScript执行HTTP请求,无需重新加载整个网页即可从...

    JS实现单图片预览,兼容IE、火狐

    } else if (window.ActiveXObject) { // IE fallback var xhr = new ActiveXObject("Microsoft.XMLHTTP"); xhr.open("GET", URL.createObjectURL(file), true); xhr.responseType = "blob"; xhr....

    ajax异步提交实例

    然后,`request.open()`方法初始化一个POST请求,`request.onreadystatechange`设置为`processResponse`函数,该函数会在请求状态改变时被调用。最后,`request.send(null)`发送空的请求体,因为在这个例子中,数据...

    Ajax自己写的js异步请求方法

    ### Ajax自己写的JS异步请求方法 #### 一、引言 在Web开发中,异步请求是一项非常重要的技术,它允许网页在不重新加载整个页面的情况下与服务器进行交互,从而提升用户体验。其中,Ajax(Asynchronous JavaScript ...

    IE_FF兼容性

    // IE和FF都支持异步模式下的XMLHttpRequest if (xmlHttp.readyState == 4 && xmlHttp.status == 200) { // 处理响应数据 } ``` 需要注意的是,在同步模式下(即`xmlHttp.open("GET", "xxx.aspx?id=xx", false);`)...

    简单介绍不用库(框架)自己写ajax

    2. 使用xhr.open()方法配置请求类型(GET或POST)、请求的URL以及是否异步。 3. 使用xhr.send()方法发送请求。对于GET请求,通常不传递参数,而POST请求则需要传递字符串类型的数据。 4. 使用xhr.onreadystatechange...

    echarts.min.js

    echarts-gl 中使用的地图类型同 geo 组件相同(ECharts 中提供了两种格式的地图数据,一种是可以直接 script 标签引入的 js 文件,引入后会自动注册地图名字和数据。还有一种是 JSON 文件,需要通过 AJAX 异步加载后...

Global site tag (gtag.js) - Google Analytics