基于JavaScript代码去掉H5页面中的头尾及广告部分(支持 Android 和 iOS)2(难度升级)

前段时间做了一篇总结:基于JavaScript代码去掉H5页面中的头尾及广告部分(支持 Android 和 iOS),不过好景不长,黑科技和反常规的技术又来了,情况是这样的,如果div 被 id 或 class 标识了,那么我们完全可以按照之前的文章通过js来隐藏掉,但是道高一尺魔高一丈,如果这个div没有被 id 或 class 做标识,如图:



似乎看着无解了,不过,作为开发者,怎么可以放弃呢,通过分析和参考,可以采取如下两种策略:

1,通过控制 div 的显示或直接移除该div(谈何容易啊);

2,通过隐藏 div 里面的iframe来实现(通常div下会嵌套一个iframe框架,本案例就是如此);


先看第二种方案,依然要通过知道iframe的name,然后再进一步获取document来操作它里面的div,例如:

<span style="font-size:14px;">function displays(){
    document.getElementById("iframeA").contentWindow.document.getElementById("aa").style.display = "none";
}</span>


但是,刚才截图可以看出,子iframe依然没有给出name,果断放弃第二种方案;


采用第一种方案,就是获取该div,没有id和class,有点郁闷,思路可以抬高一点,如果全局获取所有的div,然后是否能找到这个特殊的div,然后直接移除或隐藏,好吧,经历一番搜索和测试后,给出如下代码:


<span style="font-size:14px;"><script>
     window.οnlοad=function(){
        var div = document.getElementsByTagName("div");
        for (var i=div.length-1; i>=0; i--)    {
            if (div[i].innerHTML.indexOf("some")>=0) document.body.removeChild(div[i]);
        }
    };
</script></span>


iOS和Android都完全支持,从代码可以看出先通过innerHTML得到div里面的字符串,然后再通过indexOf方法去获取里面是否有some这个字符串,如果>0 就说明找到我们想要的div了,然后移除它就好,就这样,被我征服;

以下是放入iOS或Android里面的代码片段,供参考:



特别推荐优质APP:IT面试宝典




  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

群鸿

感谢认可,多谢打赏。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值