eAstwind
小狐狸
小狐狸
  • UID7306
  • 注册日期2005-07-14
  • 最后登录2019-11-12
  • 发帖数83
  • 经验49枚
  • 威望0点
  • 贡献值38点
  • 好评度4点
阅读:527回复:9

想请会写脚本的各位帮个忙……

楼主#
更多 发布于:2019-10-12 09:29
常去的论坛有其他网友编写了去广告脚本,但是站方很快做出反制在页面加载3秒后判断已加载页面是否长度发生变化,如发生即变更页面为下图


站方的意思很明显:老老实实地给我看广告。我琢磨着去广告脚本中如果添加了“删除3秒后判断页面是否长度发生是否变化”的句段会否避免页面变更为上图?我自己不会写脚本,只能看懂写好的脚本的大意。所以不知咱们论坛有没有热心人愿意更新一下我提供的脚本?
所做用的论坛是http://bbs.8080.net/forum-88-1.html;附件中是去广告脚本;以下为3秒后判断的脚本

ready(function(){
var text = document.body.innerText || document.body.textContent;
  var originalLength = text.length;
  setTimeout(function(){
      text = document.body.innerText || document.body.textContent;
      if(text.length != originalLength){
          window.location = '/topic-unsafe-internet-environment.html';
      }
  }, 3000);
});
附件名称/大小 下载次数 最后更新
tampermonkey_scripts.zip (3KB)  3 10-12 09:29

最新喜欢:

infinityinfini...
aaaa007cn
千年狐狸
千年狐狸
  • UID23968
  • 注册日期2008-05-03
  • 最后登录2019-11-19
  • 发帖数1918
  • 经验1132枚
  • 威望1点
  • 贡献值232点
  • 好评度161点
1楼#
发布于:2019-10-12 12:35
去广告用 ublock origin 加默认订阅列表就好了呀

如果非要用那个去广告脚本
我有几个方案

一、用 privoxy 过滤页面 html,注释掉那个 ready 就好
二、这个检测只在页面 DOMContentLoaded 后 3 秒执行一次,所以去广告改为 DOMContentLoaded 4 秒之后运行就能绕过检测
三、如果没有其他地方调用 document.body.innerText,用 Object.defineProperty 伪造下 innerHTML 的返回值就可以
四、如果 ready 只有这一个地方用到,直接把 ready 替换为空函数也可以

推荐用方案一
方案二改动最少,但可能观感不佳
方案三、四取决于那俩假设,如果假设不成立,工作量会增加不少
taoww
狐狸大王
狐狸大王
  • UID39284
  • 注册日期2013-03-18
  • 最后登录2019-11-08
  • 发帖数459
  • 经验416枚
  • 威望0点
  • 贡献值98点
  • 好评度72点
2楼#
发布于:2019-10-13 00:26
可以用ublock origin的根据内容过滤网页内嵌脚本的功能
在自定义过滤规则里加一条
bbs.8080.net##script:contains(topic-unsafe-internet-environment.html)
aaaa007cn
千年狐狸
千年狐狸
  • UID23968
  • 注册日期2008-05-03
  • 最后登录2019-11-19
  • 发帖数1918
  • 经验1132枚
  • 威望1点
  • 贡献值232点
  • 好评度161点
3楼#
发布于:2019-10-14 11:42
taoww:可以用ublock origin的根据内容过滤网页内嵌脚本的功能
在自定义过滤规则里加一条
bbs.8080.net##script:contains(topic-unsafe-internet-environment.html)
回到原帖
这么说来
gm 脚本用 run at document start 加 beforescriptexecute 也行
判断一下 content 然后阻止运行
eAstwind
小狐狸
小狐狸
  • UID7306
  • 注册日期2005-07-14
  • 最后登录2019-11-12
  • 发帖数83
  • 经验49枚
  • 威望0点
  • 贡献值38点
  • 好评度4点
4楼#
发布于:2019-10-18 11:31
taoww:可以用ublock origin的根据内容过滤网页内嵌脚本的功能
在自定义过滤规则里加一条
bbs.8080.net##script:contains(topic-unsafe-internet-environment.html)
回到原帖
感谢,我用你的方法目前浏览论坛没有出现主贴中的页面提示
eAstwind
小狐狸
小狐狸
  • UID7306
  • 注册日期2005-07-14
  • 最后登录2019-11-12
  • 发帖数83
  • 经验49枚
  • 威望0点
  • 贡献值38点
  • 好评度4点
5楼#
发布于:2019-10-18 11:33
aaaa007cn:去广告用 ublock origin 加默认订阅列表就好了呀

如果非要用那个去广告脚本
我有几个方案

一、用 privoxy 过滤页面 html,注释掉那个 ready 就好
二、这个检测只在页面 DOMContentLoaded 后 ...
回到原帖
您这几个建议对我来说已经比较专业了,我不大能弄懂。不知有无推荐教程学习?话说这一学肯定又是鸿篇巨制,我怕我学不下。毕竟本人与IT与编程毫无关系。
eAstwind
小狐狸
小狐狸
  • UID7306
  • 注册日期2005-07-14
  • 最后登录2019-11-12
  • 发帖数83
  • 经验49枚
  • 威望0点
  • 贡献值38点
  • 好评度4点
6楼#
发布于:2019-11-08 13:39
taoww:可以用ublock origin的根据内容过滤网页内嵌脚本的功能
在自定义过滤规则里加一条
bbs.8080.net##script:contains(topic-unsafe-internet-environment.html)
回到原帖
更新一个情况:乘着双11给自己添了副SSD,重新安装系统安装浏览器,同步各种扩展完毕后,在ubo里手动添加了这条自定义过滤规则。然后发现不起效了!而我再次回到机械硬盘的系统里使用浏览器,这条规则有效……
我就是照着你的文本直接复制,在新系统里不起作用了不知咋搞的,除了这条规则,其他ubo的任何过滤都是有效的。不知各位有何解?
alanfly
千年狐狸
千年狐狸
  • UID31035
  • 注册日期2009-11-10
  • 最后登录2019-11-12
  • 发帖数2685
  • 经验495枚
  • 威望1点
  • 贡献值116点
  • 好评度83点
  • 社区居民
  • 最爱沙发
  • 忠实会员
7楼#
发布于:2019-11-08 13:58
eAstwind:更新一个情况:乘着双11给自己添了副SSD,重新安装系统安装浏览器,同步各种扩展完毕后,在ubo里手动添加了这条自定义过滤规则。然后发现不起效了!而我再次回到机械硬盘的系统里使用浏览器,这条规则有效……
我就是照着你的文本直接复制,在新系统...
回到原帖
哈哈哈,换了ssd系统起飞了。
taoww
狐狸大王
狐狸大王
  • UID39284
  • 注册日期2013-03-18
  • 最后登录2019-11-08
  • 发帖数459
  • 经验416枚
  • 威望0点
  • 贡献值98点
  • 好评度72点
8楼#
发布于:2019-11-08 16:49
eAstwind:更新一个情况:乘着双11给自己添了副SSD,重新安装系统安装浏览器,同步各种扩展完毕后,在ubo里手动添加了这条自定义过滤规则。然后发现不起效了!而我再次回到机械硬盘的系统里使用浏览器,这条规则有效……
我就是照着你的文本直接复制,在新系统...
回到原帖


检查一下ublock选项中,规则列表分页里的自定义静态规则前面的勾有没有选上
如果已经选上了,用设置分页里的数据备份和还原功能把旧硬盘的设置导入到新硬盘呢?
eAstwind
小狐狸
小狐狸
  • UID7306
  • 注册日期2005-07-14
  • 最后登录2019-11-12
  • 发帖数83
  • 经验49枚
  • 威望0点
  • 贡献值38点
  • 好评度4点
9楼#
发布于:2019-11-12 18:09
我启用umatrix扩展后发现没有“自定义过滤规则”。按说matrix比block的功能更全啊……
1楼的回复,是基于脚本编辑吧?和在去广告扩展中的设置没啥关系吧?我不大会……
游客

返回顶部