JS~模拟表单在新窗口打开,避免广告拦截

说起广告拦截,这应该是浏览器的一个特性,它会将window.open产生的窗口默认为一个广告,将它进行拦截,但有时,这不是我们所希望的,有时,我们就是需要它在客户端的浏览器上弹出一个新窗口,以展示数据处理的更新结果,例如,一个创建商品的预览功能,它需要先保存数据,然后再在新窗口展示最新的信息,这种需求并不少,而大多数人的作法就是使用window.open去弹窗口,但它确实不是一种好的方式!

新方式来了

我们知道表单提交实际上可以把POST的结果响应到新窗口上,我们就是利用表单的这种性质,在JS中伪造一个form,来实现新窗口展示数据的功能  

       //伪装一下表单提交在新窗口
        function newWinUrl( url ){
            var f=document.createElement("form");
            f.setAttribute("action" , url );
            f.setAttribute("method" , 'get' );
            f.setAttribute("target" , '_black' );
            document.body.appendChild(f)
            f.submit();
        }

在程序调用它时,可能有这样的代码

       //预览功能
        $("#do").click(function () {
            $ajax({
                type: "get",
                data: {},
                success: function (data) {
                    newWinUrl(url + data);
                }
            });

        });

0了,可以进行测试了.

本文转自博客园张占岭(仓储大叔)的博客,原文链接:JS~模拟表单在新窗口打开,避免广告拦截,如需转载请自行联系原博主。

在现代浏览器中,自动弹出窗口通常会受到严格的拦截措施,但你可以通过监听用户的点击事件来绕过这一限制。具体来说,当用户主动点击页面时,可以通过JavaScript中的`window.open`方法打开一个新窗口,这样就能模拟出用户主动打开窗口的行为。此外,为了确保广告能够在用户离开当前页面时展示,可以使用Yahoo UI库(YUI)中的`Event`对象来监听用户的点击事件,并在事件触发时执行广告打开操作。例如,你可以在用户点击页面时调用一个函数,该函数尝试打开广告窗口,并设置广告窗口为失去焦点状态,而将焦点返回给原页面的`opener`窗口。这样操作后,浏览器通常不会将这一行为视为广告弹窗,从而提高广告展示的概率。需要注意的是,这种方法并非绝对可靠,因为用户可能使用了广告拦截插件,这些插件能够有效阻止广告的显示。因此,你还需要考虑使用其他技术方案,例如模拟表单提交打开广告窗口,虽然这种方法无法设置窗口特性参数,但它在一定程度上能提高广告的穿透力。详细操作和相关策略可以在《优化javascript背投广告代码策略》这份文档中找到,它提供了详细的代码示例和实践建议,有助于开发者在遵守浏览器行为和用户隐私政策的前提下,设计出更为有效的广告展示策略。 参考资源链接:[优化javascript背投广告代码策略](https://wenku.youkuaiyun.com/doc/7m7z0yoim5?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值