3 个回答

这个是因为http劫持导致的。
HTTP劫持是在使用者与其目的网络服务所建立的专用数据通道中,监视特定数据信息,提示当满足设定的条件时,就会在正常的数据流中插入精心设计的网络数据报文,目的是让用户端程序解释“错误”的数据,并以弹出新窗口的形式在使用者界面展示宣传性广告或者直接显示某网站的内容。 (来源于百度百科)

目前通用的解决方案:https

全部用的http请求……这不知道原因么……

    var del_times = 0, deTimer = null;
    function adGo() {
        var iframe = document.getElementsByTagName('iframe')[0];
        if(iframe){
            console.log(iframe)
            
            //循环 iframe 父类,直到找到body和body的下一级,然后整个嵌入的代码删除。
            var bodyNode = {tagName:''}, iframeParent, targetNode = iframe.parentNode;
            while (bodyNode.tagName != 'BODY'){
                bodyNode = targetNode;
                if(bodyNode.tagName != 'BODY'){
                    iframeParent = targetNode;
                    targetNode = targetNode.parentNode;
                }
            }
            if(iframeParent) //如果iframe有父类
                bodyNode.removeChild(iframeParent);
            else
                bodyNode.removeChild(iframe);
        }
        del_times++;
        if (del_times > 10) window.clearInterval(deTimer)
    }
    deTimer = self.setInterval(adGo, 2000);   //把这个2000, 调低一点,比如200

把这一段js代码 加到入<body></body>里边,就能解决。~~

具体的解决方案和代码在这里 https://juejin.im/post/5b06fe...

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题