绕过chrome的弹窗拦截机制

在chrome的安全机制里面,非用户触发的window.open方法,是会被拦截的。举个例子:

var btn = $(‘#btn‘);
btn.click(function () {

    //不会被拦截
    window.open(‘http://cssha.com‘)
});

上面的代码中,window.open是用户触发的时候,是不会被拦截的,可以正常打开新窗口。再看下面这个:

var btn = $(‘#btn‘);
btn.click(function () {

    $.ajax({
        url: ‘ooxx‘,
        success: function (url) {

            //会被拦截
            window.open(url);
        }
    })
});

上面的代码中,用户没有直接出发window.open,而是发出一个ajax请求,window.open方法被放在了ajax的回调函数里,这样的情况是会被拦截的。

那么,当用户点击按钮,发出ajax请求,如何在ajax请求完成后再打开新窗口,又不被拦截呢? 接着往下看:

var btn = $(‘#btn‘);
btn.click(function () {

    //打开一个不被拦截的新窗口
    var newWindow = window.open();

    $.ajax({
        url: ‘ooxx‘,
        success: function (url) {

            //修改新窗口的url
            newWindow.location.href = url;
        }
    })
});

上面的代码中,用户安点击按钮的时候,先打开一个空白页,再发ajax请求,在ajax回调里面修改新窗口的.location.href,这样就不会被拦截

时间: 2024-10-13 16:27:03

绕过chrome的弹窗拦截机制的相关文章

如何绕过chrome的弹窗拦截机制

如何绕过chrome的弹窗拦截机制 在chrome的安全机制里面,非用户触发的window.open方法,是会被拦截的.举个例子: var btn = $('#btn'); btn.click(function () { //不会被拦截 window.open('http://cssha.com') }); 上面的代码中,window.open是用户触发的时候,是不会被拦截的,可以正常打开新窗口.再看下面这个: var btn = $('#btn'); btn.click(function ()

如何绕过浏览器的弹窗拦截机制

在chrome的安全机制里面,非用户触发的window.open方法,是会被拦截的.举个例子: var btn = $('#btn'); btn.click(function () { //不会被拦截 window.open('http://cssha.com') }); 上面的代码中,window.open是用户触发的时候,是不会被拦截的,可以正常打开新窗口.再看下面这个: var btn = $('#btn'); btn.click(function () { $.ajax({ url: '

开发机上绕过Chrome同源策略的办法

开发机上绕过Chrome同源策略的办法 标签: Chrome同源策略跨域 2013-08-21 18:33 6071人阅读 评论(0) 收藏 举报  分类: Chrome扩展(1)  版权声明:本文为博主原创文章,未经博主允许不得转载. 当需要用jQuery通过ajax或者get和post方法从本地加载文件或者跨域访问时,会受到Chrome严格的同源访问策略的限制.绕过的方法也很简单:添加Chrome启动参数即可. 如果只需要加载本地文件:参数为: [plain] view plain copy

Android开发系列之事件拦截机制

对于Android开发者来说理解事件传递机制的重要性,我想应该是不言而喻的.在一个Activity里面,我们经常会重写onTouchEvent事件,可是重写结束之后,对于是返回true还是返回false却感到迷惑.心情好的时候返回true,心情不好的时候返回false. 要完全理解事件拦截机制,我们首先需要明白这几个方法的作用:dispatchTouchEvent(MotionEvent ev),onInterceptTouchEvent(MotionEvent ev),onTouchEvent

事件拦截机制学习

前段时间刚接触过android手机开发,对它的事件传播机制不是很了解,看了一下书总结了一下,总的来说: 1) onInterceptTouchEvent负责对touch事件进行拦截,对于嵌套的view最先执行的是事件拦截方法的是最外层的那个view的onInterceptTouchEvent方法,然后依次执行子视图的onInterceptTouchEvent,然后在执行子视图的子视图的事件拦截方法(当然在这里假设所有嵌套视图的onInterceptTouchEvent都会得到执行,让每个视图的o

事件拦截机制分析(Android群英传)

内容是博主照着书敲出来的,博主码字挺辛苦的,转载请注明出处,后序内容陆续会码出. 当Android系统捕获到用户的各种输入事件后,如何准确地传递给真正需要这个事件的控件呢?Android给我们提供了一整套完善的事件传递.处理机制,来帮助开发者完成准确的事件分配与处理. 要了解触摸事件的拦截机制,首先要了解什么是触摸事件?顾名思义,触摸事件就是捕获触摸屏幕后产生的事件.当点击一个按钮时,通常就会产生两个或者三个事件--按钮按下,这是事件一:如果不小心滑动一点,这就是事件二:当手抬起,这是事件三.A

Android 时间拦截机制

对于Android事件拦截机制,相信对于大多数Android初学者是一个抓耳挠腮难于理解的问题.其实理解这个问题并不困难. 首先,你的明白事件拦截机制到底是怎么一回事?这里说的事件拦截机制,指的是对触摸事件的拦截机制.那何为触摸事件?所谓的触摸事件,就是指系统捕获的触摸屏幕所产生的事件.当我们点击按钮时候,此时其实就产生了三个事件.按钮按下,这是事件之一:如果你不小心滑动了一点儿,这是事件之二:如果你抬起,这是事件之三.Android为我们这个触摸事件封装了一个类--MotionEvent.在O

简单绕过Chrome密码查看逻辑,查看浏览器已保存的密码

简单绕过Chrome密码查看逻辑,查看浏览器已保存的密码 利用场景: 同事或朋友外出有事,电脑未锁屏离开座位.可以利用这一间隙,查看Ta在Chrome浏览器上保存的账号密码 查看逻辑: 当我们要查看Chrome浏览器上保存的密码时,点击显示,会弹出一个对话框来要求输入Windows密码来验证你的权限. 绕过方法: 在地址栏输入chrome://settings/passwords来查看所有已保存的密码列表,搜索感兴趣的目标站点. 进入目标站点的登录页面,输入用户名前几位字符,让浏览器自动填充.右

Skywalking的增强与拦截机制

字节增强条件匹配 在 skywalking 中实现很多基于 byte-buddy 的关于链式匹配查询的实现, 代码如下所示: public abstract class AbstractJunction<V> implements ElementMatcher.Junction<V> 其对应的类的类图关系如下所示: 除此之外, 为了便于更好的执行在拦截时期的的匹配, skywalking 又定义了一套自实现的 Match 的匹配器, 类的简要类图关系如下所示: 除此之外, 为了便于