模拟用户点击弹出新页面不会被浏览器拦截
相信用过window.open的小伙伴们都遇到过被浏览器拦截导致页面无法弹出的情况;我们换下思路,什么情况下的新页面弹出才不会被浏览器拦截呢?比如<a />标签这种就不会;那么我们只要模拟下用户去主动点击这个<a />标签就不会有拦截的问题了。
<a href="" id="alink" target="_blank" style="display: none"><span id="spanlink">test</span></a>
<input type="button" value="点我弹出新页面" onclick="targetClick()" />
然后在JS中给<a />标签赋值并触发点击事件:
代码如下:
function targetClick() {
$("#alink").attr("href", "http://www.163.com");
$("#spanlink").click();
return false;
}
OK,这下页面的弹出就畅通无阻了。
相关推荐
-
Jquery版本导致Ajax不执行success回调函数
对于使用ajax来请求数据已经不是第一次使用(一直觉得也就那么回事),就在昨天居然遇到了一个问题?项目中需要用到ajax来进行数据的请求,于是三下五除二的将ajax代码拷贝到项目中,前端,后台数据处理完毕,测试(心想可以休息下下了),谁知数据成功返回.前端没报错,后台也没错,硬是没有执行success回调函数,心凉了一半. 接下来就是找原因,查看原先代码,百度,json格式检查,终于发现问题所在 罪魁祸首居然是Jquery版本所引起的. Jquery版本:jquery-1.9.0.min.js
-
window.open被浏览器拦截后的自定义提示效果代码
现在越来越多的浏览器有拦截弹出窗口的功能.广告弹出来给拦掉了就无所谓,要是客户在付款时给拦掉了可就不能乱算了. Gmail的"哎呀"算是经典,可是,前天心云给出了更帅的提示=.= 记得打开浏览器拦截后 测试一下,在线阅读器里不知道代码会不会给过滤..代码在下边,其实没什么技术含量滴.挖哈哈... 复制代码 代码如下: window._open=window.open; window.open=function(sURL,sName,sFeatures,bReplace){ if
-
ajax回调函数参数传递正确方法
属性方法是可以带参数: 复制代码 代码如下: function ClassX(name) { this.name = name; ClassX.prototype.show = function (param) { alert(this.name + " " + param); }; } var o = new ClassX("name"); o.show("param");//name param 但是,上面是虽然是直接在函数签名中定义了参考,
-
js 弹出新页面避免被浏览器、ad拦截的一种新方法
以绑定click弹窗的方式,改为普通的链接,即 a[target=_blank],在点击打开新窗口之前,修改其href. 绑定mousedown,鼠标点击执行完成前修改href. 绑定focus,保证tab切换+enter时替换href. 复制代码 代码如下: <input type="search" id="keyword" value="" autocomplete="off" placeholder="请
-
window.open关于浏览器拦截问题分析及解决方法
window.open是javascript函数,该函数的作用是打开一个新窗口或这改变原来的窗口,不过一般用来的是打开新窗口,因为修改原来的网页地址,可以有另一个函数,那就是window.location,他可以重定向网页地址,使网页跳转到另一个页面. 我现在要说的是window.open函数的几个使用策略,一般情况下,如果你直接在js中调用window.open()函数去打开一个新窗口,浏览器会拦截你,认为你将弹出广告等用户不想得到的窗体,所以如果不想让浏览器拦截你,你可以将这个函数改为用户点
-
ajax不执行success回调而是执行了error回调
附上代码如下: JScript code: 复制代码 代码如下: $.ajax({ type: "post", url: "jsp/loginManager.jsp", data: "name=" + $('#rname').attr('value') + "&pwd=" + $('#pwd').attr('value'), dataType: "text", success: function(d
-
JS判断网页广告是否被浏览器拦截过滤的代码
本来现在投广告赚钱也不像前几年好做,现在还大部分浏览器都拦截了广告,很多浏览器还是默认拦截广告,做站长不是一般辛苦啊!目前中小站长大部分收入还是靠广告,广告被拦截,收入自然会大大减少. 目前大部分浏览器的广告拦截规则都是广告黑名单+一些广告字眼匹配,比如百度联盟.搜狗联盟.Google联盟这些就算在广告黑名单里的,一般广告过滤都会过滤掉这些广告联盟代码.剩下的就是广告字眼匹配,比如js地址包含ads.php.ad.js甚至是gg.js都可能会被过滤,360浏览器甚至会把包含ad.gif.960x
-
在Java的Struts中判断是否调用AJAX及用拦截器对其优化
Strut2判断是否是AJAX调用 1. AJAX与传统Form表单 实际上,两者一般都是通过HTTP的POST请求.区别是浏览器提交Form表单后,期望服务器返回一个完整的HTML页面.而AJAX调用是由XMLHttpRequest对象(不同浏览器可能不一样)发出,浏览器期望服务器返回HTML片段即可,具体是JSON.XML等都没有要求.返回到浏览器后如何使用,也是由JS脚本自己决定的. 2. 请求是不是AJAX 那么对于服务器端,如何判断一个HTTP请求是不是AJAX调用?这需要看H
-
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) { wi
-
ajax请求成功后新开窗口window.open()被拦截解决方法
问题: 前面开发项目时碰到一个问题,ajax 异步请求成功后需要新开窗口打开 url,使用的是 window.open() 方法,但是很可惜被浏览器给拦截了,怎么解决这个问题呢? 分析: 浏览器之所以拦截新开窗口是因为该操作并不是用户主动触发的,所以它认为这是不安全的就拦截了(不过如果是 _self 的话就不会有这个限制),即使 ajax 回调函数中模拟执行 click 或者 submit 等用户行为(trigger('click')),浏览器也会认为不是由用户主动触发的,因此不能被安全执行,所
随机推荐
- Android RecyclerView的简单使用
- js对文章内容进行分页示例代码
- bootstrap table服务端实现分页效果
- Nginx配置支持ThinkPHP的PATH_INFO
- 解决Spring Mvc中对象绑定参数重名的问题
- 用Python的Tornado框架结合memcached页面改善博客性能
- 在JavaScript中,为什么要尽可能使用局部变量?
- pear包安装phpunit的方法
- android效果TapBarMenu绘制底部导航栏的使用方式示例
- AJAX初级聊天室代码
- html中的input标签的checked属性jquery判断代码
- PowerShell中获取当前运行脚本路径的方法
- python中wx将图标显示在右下角的脚本代码
- sqlserver、Mysql、Oracle三种数据库的优缺点总结
- Python模块搜索路径代码详解
- python基础学习之如何对元组各个元素进行命名详解
- Python批处理更改文件名os.rename的方法
- 通过面试题解析 Java 类加载机制
- tomcat组件图解 一个web服务器的架构演化史
- thinkPHP3.2使用RBAC实现权限管理的实现