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();
});
还没有评论,快来发表第一个评论吧