JS屏蔽UC浏览器网页垃圾广告问题


在前端开发中,特别是手机端网页时候。经常会在手机网页底部自动加上类似于上面这种垃圾广告。

这样会应该我们的站点,让人误以为是广告,所以我们要在代码中进行处理。

这种情况基本上UC浏览器向我们页面插入了一段iframe代码。处理的方式有很多,下面是我们常用的一种方式,亲测可用。

// 清除广告
var del_times = 0,
    deTimer = null;
function adGo() {
  var iframe = document.getElementsByTagName("iframe")[0];
  if (iframe) {
    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);
}
//抢先 删除 嵌入广告
(function () {
  adGo();
})();
deTimer = self.setInterval(adGo, 200);
///新版
首先需要在body结束之前插入一行HTML代码:
<div id="lastOne"></div>
使用这个代码的目的是为了找到页面的最后一行标识。这行代码以后出现的代码都会被jQury删除掉。
UC广告使用了滚动触发的,所以我们需要这个写:
$(document).scroll(function () {
$("#lastOne").nextAll().remove();
});


点赞1
点击评论0
收藏0
浏览 49
 

还没有评论,快来发表第一个评论吧

免责声明:凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,注册用户和一般页面游览者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任(包括侵权责任、合同责任和其它责任)
*尊重作者,转载请注明出处!