分享一个让 Hacker News 阅读体验翻倍的 Userscri

PromptCube 专家 1小时前 203 浏览 5 点赞 约 2 分钟

一边盯着文章,一边得切回标签页看讨论,这种在两个 Tab 之间反复横跳的操作简直是效率杀手。其实 HN 的核心价值就在于那些硬核的评论区,但原生的跳转逻辑太割裂了,每次想看下大家的观点,就得忍受浏览器标签页的频繁切换。

为了解决这个痛点,我写了一个简单的用户脚本(Userscript),直接把文章内容和讨论区给“缝合”在一起了。它的核心逻辑很简单:当你从 HN 点击链接进入文章页时,脚本会自动在侧边拉出一个可调节大小的面板,里面直接加载该帖子的讨论内容。这样你就可以在阅读正文的同时,实时滚动查看评论,完全不需要在两个窗口之间切来切去。

这个脚本有两个比较实用的实操细节:

  • 自动关联: 只要你是从 HN 跳转过去的,侧边栏会自动弹出。而且这个面板支持手动调整宽度,不会遮挡正文的核心内容。
  • 反向检索: 如果你直接访问了一个曾经在 HN 上被分享过的网页,脚本会自动检测该 URL 是否有对应的讨论帖。如果有,页面右上角会出现一个触发按钮,点击即可唤起讨论面板。

对于喜欢折腾浏览器插件和脚本的开发者来说,这个工具的定制化程度很高。如果你想修改面板的默认宽度或者样式,直接在代码里改 CSS 变量就行,不需要任何复杂的配置。

具体的部署逻辑其实就是一段 JavaScript,通过拦截点击事件和 DOM 注入来实现。如果你想尝试这种工作流,可以参考下面的伪代码逻辑:

// 核心逻辑简述:检测URL并注入iframe侧边栏
if (window.location.href.includes('target_article')) {
    const sidePanel = document.createElement('div');
    sidePanel.style.cssText = 'position:fixed; right:0; top:0; width:300px; height:100%; z-index:9999; overflow:auto;';
    sidePanel.innerHTML = `<iframe src="https://news.ycombinator.com/item?id=${threadId}"></iframe>`;
    document.body.appendChild(sidePanel);
}

这种通过 Userscript 快速改造网页习惯的方式,比开发一个完整的 Chrome 扩展要轻量得多,而且响应速度极快。

行业动态AI新闻

全部回复 (11)

早八人码农 专家 9小时前
Split View 确实方便,但我更习惯直接开两个浏览器窗口左右并排,这样切换起来感觉更顺手一些。
0 回复
小李爱学习 初级 9小时前
@早八人码农 窗口管理确实更灵活,不过这样得开两个标签页,你觉得内存压力大吗?
0 回复
调参侠小美 初级 9小时前
用 Bloom Filter 过滤一遍应该能解决大部分问题,你那边数据量大吗?
0 回复
T
Tom 中级 9小时前
要是浏览器自带这个功能就太爽了,现在得靠插件撑着,每次更新还得担心失效,挺心累的。
0 回复
阿海爱学习 高级 9小时前
那个竖线分割链接的功能是不是早就在现代浏览器标准里被砍掉了?感觉现在大部分都得靠插件或者像Split View这种原生功能来实现,手动点太慢了。
0 回复
在深圳设计师 中级 9小时前
.user.js 这个小技巧太实用了!至于侧边栏遮挡的问题,感觉只要稍微调下 CSS 宽度或者默认折叠就能解决,期待看到你的修改版!
0 回复
独立开发者Leo 专家 9小时前
握手!我之前也一直以为是我一个人这么想,结果搜了一圈发现居然这么多同道中人kkw.
0 回复
老阿凯 中级 9小时前
其实很多隐藏功能都没写在文档里,得靠自己瞎琢磨才能发现,这种感觉反而挺有成就感的。
0 回复
架构师老刘 中级 9小时前
快出吧!如果真能出插件,我绝对是第一个安装的,现在手动操作真的心累。
0 回复
产品经理大熊 高级 9小时前
用正则匹配标题就行,不过得考虑一下各种变体,不然漏掉几个这种标题还是挺碍眼的。
0 回复
大Max爱学习 初级 9小时前
真的有必要搞这么复杂吗?感觉直接用阅读模式或者稍后阅读插件就解决了,没必要特意为此弄个方案。
0 回复

发表回复

支持 Markdown 格式