Skip to content

[软技能] 第92天 浏览器在什么情况下会出现“已拦截弹窗式窗口”?怎么解决? #905

Open
@haizhilin2013

Description

@haizhilin2013

第92天 浏览器在什么情况下会出现“已拦截弹窗式窗口”?怎么解决?

Activity

tiyunchen

tiyunchen commented on Jul 17, 2019

@tiyunchen

已拦截弹窗式窗口出现的原因是你想打开一个页面,但是这个页面并不是通过你的点击事件实现,而是已其他方式出现的。
使用模拟点击事件,

zhoufanglu

zhoufanglu commented on Jul 17, 2019

@zhoufanglu

在我浏览成人网站的时候。

git710

git710 commented on Jul 17, 2019

@git710

在我浏览成人网站的时候。

优秀

nobaidu

nobaidu commented on Jul 17, 2019

@nobaidu

在我浏览成人网站的时候。

同九年,汝何秀

tonyChenHey

tonyChenHey commented on Jul 17, 2019

@tonyChenHey

你并没有点击那个"贪玩蓝月"但是它想自己通过新窗口打开,此时会被拦截(非主动)
如何解决,可参考这类游戏窗口出现的广告
点击叉叉的时候 还是会新窗口打开

Gloomysunday28

Gloomysunday28 commented on Jul 22, 2019

@Gloomysunday28

const open = window.open()
open.location.href = 'xxx'

JJL-SH

JJL-SH commented on Oct 11, 2019

@JJL-SH

所有异步执行打开窗口动作的行为浏览器都会拦截

kruzabc

kruzabc commented on Jan 8, 2020

@kruzabc

你这么写就被拦截了

<script>
    setTimeout(function() {
       window.open('https://www.baidu.com');
    }, 300);
</script>

但是你这么写是不会被拦截

<script>
    function opens() {
        window.open('https://www.baidu.com');
    }
    document.body.addEventListener('click',opens); // 主动点击不被拦截
   // 模拟点击被拦截
   setTimeout(function () {
        document.body.dispatchEvent(new Event('click'));
    }, 500);
</script>

如果不是手动触发的会被拦截掉的, 模拟触发也被拦截掉。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @haizhilin2013@JJL-SH@nobaidu@Gloomysunday28@zhoufanglu

        Issue actions

          [软技能] 第92天 浏览器在什么情况下会出现“已拦截弹窗式窗口”?怎么解决? · Issue #905 · haizlin/fe-interview