dont-track-me-google
Firefox and Chrome extensions to prevent Google from making links ugly.
Reveal IP location on Bilibili web. 在哔哩哔哩网页版显示 IP 属地。
我不喜欢 IP 属地,但是你手机都显示了,为什么电脑不显示呢?
一个用户脚本,让哔哩哔哩网页版评论区也能显示 IP 属地,支持大部分场景。
Tip
如果你使用非推荐环境,请确保你的用户脚本管理器支持 unsafeWindow。
推荐的用户脚本管理器(Tampermonkey、Violentmonkey、Stay 等):
我们额外提供了一个 Lite 版本。不依赖 GM API(用户脚本的 metadata 在其他环境中会被视作单纯的注释),因此可以运行在更多环境中,而不仅限于传统的用户脚本管理器。
由于移除了 GM API,「文本替换」功能将不可用。同时,Lite 版本额外添加了 @inject-into page 配置,使脚本能够直接完整地注入网页上下文中(目前仅 Firefox 支持)。
对于 FireMonkey,由于目前无法通过常规方式兼容运行,因此推荐使用 Lite 版本。
得益于运行时无关的设计,Lite 版本也可以更加灵活地部署到各种环境中,例如:
为什么个人主页的 IP 属地没有显示?
为什么我的评论区没有显示 IP 属地?
(未作特殊说明均支持新旧版)
支持对 IP 属地文本 进行自定义替换,用于优化展示效果或满足国际化需求。
使用步骤:
打开脚本管理器菜单,点击 「更新替换规则」
在弹出的对话框中输入 JSON 格式的替换规则,例如:
去除「IP 属地:」前缀,仅显示地区名称,可以使用如下规则:
{ "IP属地:": "" }
点击确定后,页面会自动刷新并应用新规则
规则说明:
虽然 B 站未在 Web 前端界面展示 IP 属地信息,但相关数据实际上仍存在于后端接口及前端组件内。本脚本的工作原理是:在评论组件(完成)渲染时,将 IP 属地数据注入到 DOM 中。
具体来说,目前 B 站前端评论区存在三种实现:
旧版评论(Vue 2):基于 Vue 2 实现,目前仅在旧版页面存在。
window.bbComment ,重写评论插入事件,在期间插入 IP 属地。新版评论(Vue 3):基于 Vue 3 实现(comment-pc-vue.next.js)。
bbComment 对象,通过 MutationObserver 监听评论区的 DOM 变更,捕获新插入的评论节点,解析其原始数据并渲染 IP 属地。__vue__ 不再存在于元素下,引入 Hook Vue3 app 将 __vue__ 实例手动挂载至目标 DOM 元素。新版评论(Lit):基于 Lit 的 Web Components(comment-pc-elements.next.js),目前存在于大部分常用场景。
window.customElements.define,拦截 ActionButtonsRender,继承并重写其生命周期方法 update(),在组件更新渲染时完成 IP 属地的插入。帮助测试 & 提供反馈的朋友们
more like this
Firefox and Chrome extensions to prevent Google from making links ugly.
search projects, people, and tags