最近在弄去广告操作,但基础不怎么行,基本是看网上教程弄的,按网上说的.class~div 并不能去掉广告,我就想能不能通过选择长为 10 的类来去掉广告。 求大佬指点。
1
shonky OP |
2
old9 2018-05-04 10:16:07 +08:00
看起来都是 mYbKXYDA 前缀?
如果确认都是这个前缀的话可以用属性选择符 [attr^=value],[class^=mYbKXYDA] {display:none;} 不过去广告还是交给 adblock ublock 之类浏览器扩展好了 |
3
shonky OP @old9 不是的,刷新下,类名都会变的。
手机上使用,类似 pwa 那样。因为会在手机上看电视电影什么的。电脑上就会用油猴了。 |
4
hourann 2018-05-04 10:26:53 +08:00 via iPhone
一个思路是先选择所有有 class 属性的标签,然后遍历,筛选出长度为 10 的,然后再做一次 select
|
5
rabbbit 2018-05-04 10:27:19 +08:00
|
6
shonky OP @rabbbit http://www.metvb.com
就这个网站。 大佬,按你的打了一次。试了。没用呢。 var style=".wrap~div,*>img[height^="84.375"]{display:none !important}"; var myStyleElement=document.createElement("style"); myStyleElement.innerHTML=style; document.querySelector("head").appendChild(myStyleElement); document.querySelector("html").appendChild(myStyleElement); |
8
whypool 2018-05-04 10:38:39 +08:00
去掉页面的 iframe 能干掉很多广告
把下面代码保存为书签,有广告的时候点一下书签就行 javascript:(function(){%20var%20im%20=%20document.getElementsByTagName('iframe');%20if(im%20&&%20im.length){%20for(var%20i%20=%200;i<im.length;i++){%20var%20p%20=%20im[i];%20p.parentNode.removeChild(p);%20}%20}%20})(); |
9
shonky OP @whypool 是这样的。我姐喜欢上这网站看电视,我就想用 fapp 做一个 app 出来,把广告都弄掉。
|
11
Carseason 2018-05-04 10:51:58 +08:00 via iPhone
根据固定字符来判断,比如你图片的 class=abcd***,则使用[class^="abcd"]来匹配 class 类以 abcd 开头的类,或[class$="abcd"]来匹配以 abcd 结尾的,又或者[class*="abcs"]来匹配 class 里包含 abcd 的元素
如果是一个无固定值蠢随机的你则要用另外的元素来判断位置,或者找出 js 来屏蔽 |
12
yu099 2018-05-04 10:54:05 +08:00 via Android
cnbeta 也这样的,去不掉
|
13
rabbbit 2018-05-04 10:55:42 +08:00
试试
var a = document.querySelector('a>img[src^="https://jbokhm.cn"],a>img[src^="http://dvei.fendoutime.com"]') a.parentNode.parentNode.removeChild(a.parentNode) |
14
shonky OP @Carseason 是随机的。知道 js 了,怎么屏蔽。位置也知道,一直弄.class~div,我把所有的 class 都放了进去,也没用。
|
17
Carseason 2018-05-04 11:01:57 +08:00 via iPhone
@shonky 如果只有一个随机类,没别的固定类的话你就得修改 js 了,如果是单独的 js 生成的可以选择屏蔽 js,如果不是可以用位置来确定,比如前一个类为 class a,则用.a>*之类的写法来屏蔽,再或者是看插件是否支持正则的使用,通过正则修改 js 的参数等等,具体看你插件的写法
|
18
shonky OP @rabbbit 大佬,成功去了首页的广告,但会留下一个关闭的小图标。不过没关系。还有在点进去,又会出现在中间部位的广告,如图 https://i.loli.net/2018/05/04/5aebcd6b8b585.png
,还是按大佬这 js,改动下就可以吗? |
19
shonky OP @Carseason Fusion APP,我用的是这个来做 app 的。不是弄插件。谢谢大佬指点。
|
20
shonky OP |
21
rabbbit 2018-05-04 11:15:40 +08:00
中间的
document.querySelector('div[class^="hengfu"]').style.display = "none" |
22
rabbbit 2018-05-04 11:21:18 +08:00
上边的,不过这样性能堪忧啊
var list = Array.prototype.slice.call(document.all) list.forEach( function(i){ if (i.className.length === 10) {i.parentNode.removeChild(i)} } ) |
23
shonky OP @rabbbit 大佬首页弄掉了一个上面关闭图标在右方的广告,现在又出来一个关闭图标在左边的广告。也是在上方。在刷新下,又出现个在下方的广告。
Delete Link https://i.loli.net/2018/05/04/5aebd1aba4807.png 大佬,有空在回复。不急。 谢谢大佬了。 |
25
Carseason 2018-05-04 11:25:30 +08:00 via iPhone
我看了你要屏蔽的网站,都是用 js 生成的新元素,那么你就不要用 div 类来屏蔽,直接找出脚本把网站屏蔽掉就可以了
|
26
rabbbit 2018-05-04 11:27:12 +08:00
刷新时可能会卡吧,下边那个广告我看不到,是不是电信运行商插的.
|
29
DT27 2018-05-04 11:30:03 +08:00
表示 uBlock Origin 打开这网站看不到有广告~
|
30
shonky OP @rabbbit 又来了上面的,关闭图标位置变了。https://i.loli.net/2018/05/04/5aebd392570dc.png
|
32
Carseason 2018-05-04 11:30:52 +08:00 via iPhone
||metvb.com/js/gwunggou/*.js
一条 js 屏蔽就足够了,具体写法自己参考下软件的写法 |
34
rabbbit 2018-05-04 11:35:56 +08:00
试试看能不能把 https://wrvdmh.cn/加载的脚本屏蔽掉
|
35
learnshare 2018-05-04 11:36:59 +08:00
禁用 JS
|
37
lrz0lrz 2018-05-04 12:09:32 +08:00
页面结构固定吗?
为什么不用 div:nth-child(1) 这些选择器呢? |
40
meszyouh 2018-05-04 13:15:53 +08:00
```
(function() { var children = $("body").children(":not(.wrap)"), el; var parser = /[a-zA-Z\d]{3,}/, reg; var filter = function(el, reg, level, counter) { if (level > 4) { return; } el.children().each(function() { var t = $(this); var id = el.attr("id"), className = el.attr("class").split(/\s+/); if (reg.test(id)) { counter.num++; } if (reg.test(className)) { counter.num++; } filter(t, reg, level + 1, counter); }); if (counter.num >= 4 && level === 1) { el.remove(); $("head").append( "<style>#" + el.attr("id") + "{position:static;height:0;transform:scale(0,0);overflow:hidden;}</style>" ); } }; children.each(function() { el = $(this); var id = el.attr("id"), match1, match2, className = el.attr("class"); var counter = { num: 0 }; match1 = id.match(parser); match2 = className.match(parser); if (match1 || match2) { match1 = match1 || [""]; match2 = match2 || [""]; var str = match1[0].length > match2[0].length ? match1[0] : match2[0]; reg = new RegExp(str, "i"); filter(el, reg, 1, counter); } }); $('[class*="hengfu"]').remove(); })(); ``` 试试这个 |
44
SingeeKing 2018-05-04 13:34:23 +08:00
@shonky #43 那三个点是 Markdown 标记……
|
45
3a3Mp112 2018-05-04 13:36:59 +08:00
能不能直接把网址发出来呀。
|
46
shonky OP @3a3Mp112 发了啊。www.metvb.com 。
|
47
shonky OP @SingeeKing 有点注释的感觉。
|
49
leaves7i 2018-05-04 23:52:42 +08:00 via Android
给你个思路。看下父元素和子元素。一般来说子元素不会那么随机。然后找位置、大小等等属性抓取元素
|