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了,可以进行测试了.

posted @   张占岭  阅读(3758)  评论(3编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
历史上的今天:
2012-06-26 爱上MVC3系列~RenderAction与RenderPartial及一个页面多个表单提交
点击右上角即可分享
微信分享提示