ajax回调打开新窗体被浏览器拦截

 1 function click_fun(){
 2
 3     $.ajax({
 4         ‘url‘: ‘${pageContext.request.contextPath}/action/‘,
 5         ‘type‘: ‘post‘,
 6         ‘dataType‘: ‘json‘,
 7         ‘data‘: data,
 8         success: function (data) {
 9             window.open("www.baidu.com");//被拦截
10         },
11         error:function(){
12
13         }
14     });
15 }

被拦截原因:打开新窗体只能在点击事件内触发,点击事件内的回调函数内打开窗体会被拦截,浏览器会认为是广告弹窗之类的代码

解决方案:

 1 function click_fun_new(){
 2     var tempwindow=window.open();//先打开临时窗体,由于是点击事件内触发,不会被拦截
 3     $.ajax({
 4         ‘url‘: ‘${pageContext.request.contextPath}/action/‘,
 5         ‘type‘: ‘post‘,
 6         ‘dataType‘: ‘json‘,
 7         ‘data‘: data,
 8         success: function (data) {
 9             tempwindow.location = "www.baidu.com";//当回调的时候更改临时窗体的路径
10         },
11         error:function(){
12             tempwindow.close();//回调发现无需打开窗体时可以关闭之前的临时窗体
13         }
14     });

原文地址:https://www.cnblogs.com/michelledawm/p/10456534.html

时间: 2024-11-11 21:32:24

ajax回调打开新窗体被浏览器拦截的相关文章

ajax回调打开新窗体防止浏览器拦截

function click_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&q

Ajax提交打开新窗口,浏览器拦截处理

//主要是添加同步处理 $.ajax({ url: "ashx/OrderHander.ashx?action=CheckRepeat", data: { "OrderId": data.OrderNo }, dataType: "json", async:false, type: "post", success: function (data) { if (data == "1") { window.lo

window.open打开新窗口被浏览器拦截的处理方法

一般我们在打开页面的时候, 最常用的就是用<a>标签,如果是新窗口打开就价格target="_blank"属性就可以了, 如果只是刷新当前页面就用window.location.reload(), 在某些特殊情况下也要用到另外一种新窗口打开的方法,就是window.open(),这个方法有一个问题就是会被基本所有的浏览器所拦截,要收到点击确认打开才可以,这样的体验可以说是非常不友好的~~ 感觉像一个有病毒的程序~~ 所以我们如果一定要用这个方法,但是又不想其被浏览器拦截,

Flash打开新窗口 被浏览器拦截 navigateToURL被拦截

众所周知,打开新窗口以前经常被用作弹出广告用,而随着浏览器发展,现在估计除了ie6之外,基本都有广告拦截功能,最基本就是拦截这种非人为的弹出新窗口.我对js研究不深,我所了解就是,必须是用户操作的处理过程中,用window.open才能顺利通过浏览器的拦截检查.同样地,在Flash中,也有很多类似的安全限制,必须是用户操作才能触发一些危险代码的执行(例如,打开文件选择框).  今天,在处理XXXX的时候,点击flash的按钮时,无法正常弹出新窗口.于是,今天专门好好研究一下这个问题.正好,前几天

Response.Redirect 打开新窗体的两种方法

普通情况下,Response.Redirect 方法是在server端进行转向,因此,除非使用 Response.Write("<script>window.location='http://dotnet.aspx.cc';</script>") 方法外,是不能在新窗体打开所指定的  URL 地址的.可是,假设细致分析一下,假设设置 form 元素的 target 属性,还是有办法打开新窗体的.以下就是能够採用的两种方法. 方法一:在server端设置 targ

对话框控件 MessageBox.Show()用法补充 打开新窗体的3中模式

(一)对话框控件 1.fontcolor 字体设置 属性:showcolor 可以调节字体颜色 showApply 控制显示应用按钮 例:设置一个文本框,点击按钮,文本框中的颜色字体发生改变 DialogResult dr = fontDialog1.ShowDialog(); if (dr == DialogResult.OK) { //设置文本框中的字体属性 richTextBox1.Font = fontDialog1.Font; //设置文本框中字体的颜色 richTextBox1.Fo

ajax请求后弹开新页面被浏览器拦截

window.open()我想应该很多人都不陌生吧,它可以实现除用a标签以外来实现打开新窗口! 最近开发项目用到时,却遇到了麻烦,本来好好的弹出窗口,结果被浏览器无情的给拦截了! 代码如下: $.getJSON(URL,data,function(data,state){ if(state=='success'){ window.open('http://www.cnblogs.com/garfieldzhong/'); }else{ alert('请求失败!'); } }) 这要手动允许弹出窗

ajax请求弹出窗口被浏览器拦截的问题

var w = window.open(); function ck(){ $.ajax({ url : '#', data:#, success : function(data1){ w.location = "#"; } }); } 记得将window设置在异步请求外面,也不用设置同步,就能实现不被浏览器拦截.

android安卓开发基础小笔记,添加按钮事件,打开新窗体,窗体传值,回传

给一个按钮添加onclick事件 //获取按钮对象 Button Aiyo = (Button)findViewById(R.id.button1); Aiyo.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) {//tv.setText("woceshi"); //弹出提示 Toast.makeText(getApplicationContext(), '你好', Toas