123456852
小狐狸
小狐狸
  • UID29347
  • 注册日期2009-06-27
  • 最后登录2019-05-05
  • 发帖数63
  • 经验39枚
  • 威望0点
  • 贡献值30点
  • 好评度1点
阅读:3734回复:15

firefox有办法阻止页面内的JS运行么?

楼主#
更多 发布于:2014-05-21 19:23
如果是嵌入的js用ABP就可以阻止弹出,但是写在页面内的却不行(不知道是不是我不会写)
然后我用了noscript也找不到禁止页面JS的方法
我就想禁止下面这条
<script>
if(adblock){$('#block').modal('show');}
</script>

这条是检测是否用ABP的
文科
千年狐狸
千年狐狸
  • UID39959
  • 注册日期2013-10-17
  • 最后登录2019-07-27
  • 发帖数2069
  • 经验1328枚
  • 威望4点
  • 贡献值340点
  • 好评度256点
  • 最爱沙发
  • 社区居民
  • 忠实会员
1楼#
发布于:2014-05-21 20:40
aaaa007cn
千年狐狸
千年狐狸
  • UID23968
  • 注册日期2008-05-03
  • 最后登录2022-03-07
  • 发帖数1924
  • 经验1138枚
  • 威望1点
  • 贡献值232点
  • 好评度164点
2楼#
发布于:2014-05-21 21:27
https://developer.mozilla.org/en-US/docs/Web/Reference/Events/beforescriptexecute
检查 target 的 innerHTML 决定是否 preventDefault
123456852
小狐狸
小狐狸
  • UID29347
  • 注册日期2009-06-27
  • 最后登录2019-05-05
  • 发帖数63
  • 经验39枚
  • 威望0点
  • 贡献值30点
  • 好评度1点
3楼#
发布于:2014-05-23 21:29
文科:哪个网页
反-反广告脚本 | Jixun 的资源仓库
最近刚好看到了这个
或者Anti-Adblock Killer | Reek for Greasemonkey
Anti-Adblock Killer | Reek
Anti...
回到原帖
这个效果有用!谢谢了!
123456852
小狐狸
小狐狸
  • UID29347
  • 注册日期2009-06-27
  • 最后登录2019-05-05
  • 发帖数63
  • 经验39枚
  • 威望0点
  • 贡献值30点
  • 好评度1点
4楼#
发布于:2014-05-23 21:29
aaaa007cn:https://developer.mozilla.org/en-US/docs/Web/Reference/Events/beforescriptexecute
检查 target 的 innerHTML 决定是否 preventDefa...
回到原帖
你这个是什么意思- -
求教
aaaa007cn
千年狐狸
千年狐狸
  • UID23968
  • 注册日期2008-05-03
  • 最后登录2022-03-07
  • 发帖数1924
  • 经验1138枚
  • 威望1点
  • 贡献值232点
  • 好评度164点
5楼#
发布于:2014-05-23 22:28
用ujs的方式阻止页面内嵌javascript运行
123456852
小狐狸
小狐狸
  • UID29347
  • 注册日期2009-06-27
  • 最后登录2019-05-05
  • 发帖数63
  • 经验39枚
  • 威望0点
  • 贡献值30点
  • 好评度1点
6楼#
发布于:2014-05-29 16:53
123456852:这个效果有用!谢谢了!回到原帖
...又没有效果了,还是会被屏蔽
白左
千年狐狸
千年狐狸
  • UID34985
  • 注册日期2010-12-29
  • 最后登录2023-11-13
  • 发帖数2039
  • 经验655枚
  • 威望0点
  • 贡献值364点
  • 好评度69点
  • 社区居民
  • 忠实会员
7楼#
发布于:2014-05-29 17:23
我记得noscript可以阻止包括页面js在内的所有script啊……
-いたんですか? -ええ、ずっと
aaaa007cn
千年狐狸
千年狐狸
  • UID23968
  • 注册日期2008-05-03
  • 最后登录2022-03-07
  • 发帖数1924
  • 经验1138枚
  • 威望1点
  • 贡献值232点
  • 好评度164点
8楼#
发布于:2014-05-29 18:40
白左:我记得noscript可以阻止包括页面js在内的所有script啊……回到原帖
但是不能只阻止页面中的某些js
要么全部阻止
要么全部许可

利用监听 beforescriptexecute 事件的方法应该可以做到定点清除

其实顶楼那个未必真的需要做到这一步
可能只需要元素过滤掉#block就好?

或者利用 yarip 来直接修改页面 html 代码去除这部分也行
hzzhaiqi
火狐狸
火狐狸
  • UID30112
  • 注册日期2009-08-18
  • 最后登录2015-09-15
  • 发帖数279
  • 经验180枚
  • 威望1点
  • 贡献值44点
  • 好评度28点
9楼#
发布于:2014-05-29 19:00
aaaa007cn:但是不能只阻止页面中的某些js
要么全部阻止
要么全部许可

利用监听 beforescriptexecute 事件的方法应该可以做到定点清除

其实顶楼那个未必真的需要做到这一步
可能只需要元素过滤掉#block就好?
...
回到原帖
牛逼啊,我以前发现 Opera 旧版有这样的事件,没想到 Firefox 也有。
aaaa007cn
千年狐狸
千年狐狸
  • UID23968
  • 注册日期2008-05-03
  • 最后登录2022-03-07
  • 发帖数1924
  • 经验1138枚
  • 威望1点
  • 贡献值232点
  • 好评度164点
10楼#
发布于:2014-05-29 20:24
hzzhaiqi:牛逼啊,我以前发现 Opera 旧版有这样的事件,没想到 Firefox 也有。回到原帖
beforescriptexecute 是 html5 新增的
不知道是哪个版本开始实装的
白左
千年狐狸
千年狐狸
  • UID34985
  • 注册日期2010-12-29
  • 最后登录2023-11-13
  • 发帖数2039
  • 经验655枚
  • 威望0点
  • 贡献值364点
  • 好评度69点
  • 社区居民
  • 忠实会员
11楼#
发布于:2014-05-30 08:43
aaaa007cn:但是不能只阻止页面中的某些js
要么全部阻止
要么全部许可

利用监听 beforescriptexecute 事件的方法应该可以做到定点清除

其实顶楼那个未必真的需要做到这一步
可能只需要元素过滤掉#block就好?
...
回到原帖
没仔细看OP,还以为楼主只是要禁止全部页面js运行...
-いたんですか? -ええ、ずっと
aaaa007cn
千年狐狸
千年狐狸
  • UID23968
  • 注册日期2008-05-03
  • 最后登录2022-03-07
  • 发帖数1924
  • 经验1138枚
  • 威望1点
  • 贡献值232点
  • 好评度164点
12楼#
发布于:2014-05-30 19:22
参考 http://stackoverflow.com/a/10468821 这个脚本,自己添加规则
或者更简化的
// ==UserScript==
// @name        blabla
// @namespace   blabla
// @include     blabla
// @grant       none
// @run-at      document-start
// ==/UserScript==
  
document.addEventListener("beforescriptexecute", function(e){
    if (/if\(adblock\){\$\('#block'\)\.modal\('show'\);}/.test(e.target.textContent)) {
        e.preventDefault();
        return false;
    }
}, true);
123456852
小狐狸
小狐狸
  • UID29347
  • 注册日期2009-06-27
  • 最后登录2019-05-05
  • 发帖数63
  • 经验39枚
  • 威望0点
  • 贡献值30点
  • 好评度1点
13楼#
发布于:2014-06-02 21:56
因为过节去了,好久没来论坛

今天一看 好多方法可以用,我先一个个试用,然后把结果来报告
123456852
小狐狸
小狐狸
  • UID29347
  • 注册日期2009-06-27
  • 最后登录2019-05-05
  • 发帖数63
  • 经验39枚
  • 威望0点
  • 贡献值30点
  • 好评度1点
14楼#
发布于:2014-06-03 00:19
aaaa007cn:但是不能只阻止页面中的某些js
要么全部阻止
要么全部许可

利用监听 beforescriptexecute 事件的方法应该可以做到定点清除

其实顶楼那个未必真的需要做到这一步
可能只需要元素过滤掉#block就好?
...
回到原帖
beforescriptexecute = =发现不会玩,有教程可以学习一下么?
上一页
游客

返回顶部