ajax回调打开新窗体防止浏览器拦截有效方法
ajax回调打开新窗体防止浏览器拦截,就这么做!
问题剖析:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | functionclick_fun(){    window.open("www.baidu.com");//能打开   $.ajax({     'url': '${pageContext.request.contextPath}/activity/savePrizes.htm',     'type': 'post',     'dataType': 'json',     'data': data,     success: function(data) {       window.open("www.baidu.com");//被拦截     },     error:function(){      }   }); } | 
分析:
打开新窗体只能在点击事件内触发,点击事件内的回调函数内打开窗体会被拦截,浏览器会认为是广告弹窗之类的代码
解决1:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | functionclick_fun_new(){   vartempwindow=window.open();//先打开临时窗体,由于是点击事件内触发,不会被拦截   $.ajax({     'url': '${pageContext.request.contextPath}/activity/savePrizes.htm',     'type': 'post',     'dataType': 'json',     'data': data,     success: function(data) {       tempwindow.location = "www.baidu.com";//当回调的时候更改临时窗体的路径     },     error:function(){       tempwindow.close();//回调发现无需打开窗体时可以关闭之前的临时窗体     }   }); }  | 
解决2:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | functionclick_fun_new(){   varflag = false;   $.ajax({     'url': '${pageContext.request.contextPath}/activity/savePrizes.htm',     'type': 'post',     'dataType': 'json',     'data': data,     'async':false,//同步请求     success: function(data) {       $("#a").attr("href","www.baidu.com");//当回调的时候更改页面上或创建的某个a标签的href       flag = true;//更改标志     },     error:function(){            }   });   if(flag){     $("#a").click();//href属性更改后模拟点击   } }  | 
以上就是ajax回调打开新窗体防止浏览器拦截的两种方法,希望对大家的学习有所帮助。
http://www.jb51.net/article/83743.htm
ajax回调打开新窗体防止浏览器拦截有效方法的更多相关文章
- Ajax提交打开新窗口,浏览器拦截处理
		//主要是添加同步处理 $.ajax({ url: "ashx/OrderHander.ashx?action=CheckRepeat", data: { "OrderI ... 
- Ajax提交打开新窗口,浏览器拦截处理;以及跨域问题
		//主要是添加同步处理 $.ajax({ url: "ashx/OrderHander.ashx?action=CheckRepeat", data: { "OrderI ... 
- 使用window.open打开新窗口被浏览器拦截的解决方案
		问题描述: 代码中直接使用window.open('//www.baidu.com', '_blank');会被浏览器窗口拦截 原因浏览器为了维护用户安全和体验,在JS中直接使用window.open ... 
- window.open打开新窗口被浏览器拦截的处理方法
		一般我们在打开页面的时候, 最常用的就是用<a>标签,如果是新窗口打开就价格target="_blank"属性就可以了, 如果只是刷新当前页面就用window.loca ... 
- Flash打开新窗口 被浏览器拦截问题  navigateToURL被拦截 真正试验结果
		众所周知,打开新窗口以前经常被用作弹出广告用,而随着浏览器发展,现在估计除了ie6之外,基本都有广告拦截功能,最基本就是拦截这种非人为的弹出新窗口.我对js研究不深,我所了解就是,必须是用户操作的处理 ... 
- Response.Redirect 打开新窗体的两种方法
		普通情况下,Response.Redirect 方法是在server端进行转向,因此,除非使用 Response.Write("<script>window.location=' ... 
- Window.open()打开一个窗体不被拦截
		Window.open()打开一个窗体不被拦截 在DataGrid中建一个模板列,在模板列中放一个客户端的Button,或者直接写你要的字句,然后用<a href>连接例:< ... 
- Ajax异步打开新页面弹框被拦截,无法将参数值传递到后台
		一.Form提交,打开新页面被拦截 手动触发Form提交打开新页面是不会被拦截的,但是如果通过Ajax异步处理回调后再程序自动触发Form提交的话,就会被浏览器当成广告弹框拦截 1.暂时的解决办法:如 ... 
- ajax请求后弹开新页面被浏览器拦截
		window.open()我想应该很多人都不陌生吧,它可以实现除用a标签以外来实现打开新窗口! 最近开发项目用到时,却遇到了麻烦,本来好好的弹出窗口,结果被浏览器无情的给拦截了! 代码如下: $.ge ... 
随机推荐
- php 运行脚本shell
			F:\phpStudy\php53\php.exe -f F:\phpStudy\WWW\qh\qh.php /usr/local/php/bin/php -f test.php Usage: php ... 
- 数据结构与算法(1)支线任务8——Find Median from Data Stream
			题目如下:(https://leetcode.com/problems/find-median-from-data-stream/) Median is the middle value in an ... 
- NOIP201307货车运输
			2016.1.28 试题描述 A 国有n座城市,编号从1到n,城市之间有m条双向道路.每一条道路对车辆都有重量限制,简称限重.现在有q辆货车在运输货物,司机们想知道每辆车在不超过车辆限重的情况下,最多 ... 
- 主机映射Linux虚拟机硬盘到本地
			Windows7上面通过VMware装了一个ubuntu的虚拟机,为了方便在window下直接查看和编辑linux系统下的代码,就想着远程映射硬盘,把Ubuntu的硬盘映射到主机中. 硬盘映射需要Sa ... 
- Error 2103 “Unhandled Error in Silverlight Application“ 解决办法
			当调试SilverLight项目时,如果出现如下错误: 当调试页面时出现如下错误: 解决办法为:打开工程属性,在Startup object:处选择相应的启动应用程序. 
- 怎样安装Ubuntu操作系统
			(转载自:http://jingyan.baidu.com/article/ff42efa9423991c19e22020d.html) 准备工作 1. 一台普通电脑(装没装操作系统无所谓),保证电脑 ... 
- jQuery中关于height,innerWidth与outerWidth的区别
			jQuery width() 和 height() 方法 width() 方法设置或返回元素的宽度(不包括内边距.边框或外边距). height() 方法设置或返回元素的高度(不包括内边距.边框或外边 ... 
- session保存用户信息
			前台jsp-------------- <%@ page import="com.manager.form.User" %><%User user = reque ... 
- VBA中如何动态定义数组
			利用 dim Arr()as string这样声明,一旦赋值后,数组大小也就固定了.如果要改变数组大小,要用redim 命令redim arr(10) 加preserve 可以不清空数组,保持原有数据 ... 
- msChart组件安装与编程
			首先下载mschart.ocx文件,至于它所依赖的.net环境,网上有很多,本人下载的插件给出链接,http://www.cr173.com/soft/47300.html而它所依赖的环境可以从我的云 ... 
