如何用 js 阻止网页中某网址的加载

2020-04-21 00:21:51 +08:00
 dyxang
自己博客插入一段开源项目的 js,每次访问页面的时候都会请求 hm.baidu.com ,估计是开发者统计数据,但是我又不想让它访问。如何做到阻止?
4546 次点击
所在节点    JavaScript
33 条回复
foxt8
2020-04-21 09:25:53 +08:00
同用 Vline,没有遇到这个问题?
Latin
2020-04-21 09:43:55 +08:00
hosts
0.0.0.0 hm.baidu.com
openmynet
2020-04-21 10:16:18 +08:00
代码在这:
var descriptor = Object.getOwnPropertyDescriptor(
HTMLScriptElement.prototype,
"src"
);
Object.defineProperty(HTMLScriptElement.prototype, "source", descriptor);

Object.defineProperty(HTMLScriptElement.prototype, "src", {
get: function() {
return this.source;
},
set: function(v) {
if (/baidu.com/.test(v)) {
throw("block")
}
this.source = v;
}
});

#可以拓展为反网页劫持
openmynet
2020-04-21 10:22:09 +08:00
HTMLScriptElement 可以换为 HTMLIFrameElement,HTMLImageElement 以拦截 iframe 与 image 方式的统计功能
serenader
2020-04-21 10:38:00 +08:00
CSP 就是用来帮你拦截不想要的请求的,不管是你自己还是你博客的访客。

就算是纯静态博客也能配置 CSP,CSP 除了可以通过配置响应头来实现之外,也能使用 meta 标签来声明。

楼上说的其他方法太 tricky 了,我不觉得是个好办法。
dyxang
2020-04-21 15:11:41 +08:00
@ysc3839 #17
这个是外部引用,自己改不了
@Latin #22
都说了是自己博客上面,不想让自己博客被别人统计……不是电脑屏蔽……
@openmynet #23
这段放在代码前还是代码后
ysc3839
2020-04-21 19:30:00 +08:00
@dyxang 改了重新传到自己网站不就好了?
dyxang
2020-04-21 20:05:57 +08:00
@ysc3839
最新的你用过吗?
我以前试过,不能。
ysc3839
2020-04-21 20:57:46 +08:00
@dyxang 我没有相关环境,无法测试。
你说的不能是怎么个不能?
dyxang
2020-04-21 22:22:50 +08:00
@ysc3839 改了保存到自定义网址引用后无法使用
ysc3839
2020-04-21 22:32:38 +08:00
@dyxang 怎么个无法使用呢?遇到了什么错误吗?就不能一次性把问题说清楚吗?
dyxang
2020-04-22 00:27:49 +08:00
@ysc3839 我现在也没有电脑,无法操作具现,很久之前试过的,貌似有验证,改了地址或者去掉了评论框的官网链接就无法使用。
openmynet
2020-04-23 10:17:35 +08:00
@dyxang 放在前面

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/664470

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX