Substack:屏蔽「关注」状态上报
拦截 fetch、XHR 与 sendBeacon 请求,避免 Substack 上报你的浏览或关注状态。
可复制的代码
// Suppress the "follow" indicator/beacon network calls
(function () {
var BLOCK = [/\/api\/v1\/follow/i, /\/api\/v1\/notes\/.*\/seen/i, /\/api\/v1\/email\/seen/i];
function blocked(url) { return BLOCK.some(function (rx) { return rx.test(url); }); }
if (window.fetch) {
var orig = window.fetch;
window.fetch = function (input, init) {
var u = typeof input === 'string' ? input : (input && input.url) || '';
if (blocked(u)) { return Promise.resolve(new Response('', { status: 204 })); }
return orig.call(this, input, init);
};
}
var OrigXHR = window.XMLHttpRequest;
if (OrigXHR) {
var Patched = function () {
var x = new OrigXHR();
var open = x.open;
x.open = function (m, u) {
if (typeof u === 'string' && blocked(u)) { this.__jzBlocked = true; }
return open.apply(this, arguments);
};
var send = x.send;
x.send = function () {
if (this.__jzBlocked) { return; }
return send.apply(this, arguments);
};
return x;
};
Patched.prototype = OrigXHR.prototype;
window.XMLHttpRequest = Patched;
}
if (navigator.sendBeacon) {
var sb = navigator.sendBeacon.bind(navigator);
navigator.sendBeacon = function (url, data) {
if (blocked(String(url || ''))) { return true; }
return sb(url, data);
};
}
})();
如何使用此示例
- 用上方按钮复制代码。
- 安装 JustZix(2 分钟),在目标页面打开扩展。
- 添加一条匹配该页面的新规则。
- 将代码粘贴到规则的 JavaScript 面板并保存 — 每次访问页面时都会运行。
为此示例评分
暂无评分 — 成为第一个。