Notion、Workflowy网页端不能鼠标中键打开链接

鼠标中键点击链接是在新标签后台打开,Notion、Workflowy大纲网页端贴一些链接,鼠标中键点击没反应,只能用Ctrl+鼠标左键打开

这个是网站开发者 代码不规范有意为之 导致的,即跳转使用事件实现,而不是<a>标签链接实现。

这个方案多用于防止目标链接的页面被爬虫采集,或者防止当前页面被识别成外链过多。

不确定开发者本意是什么,因为你列举的这几个我都没用过。

不过我印象里B站也有这个情况,这几年新的改动只要是涉及跳转逻辑的,基本上有半数都没加链接,全是事件实现。好些后来修了,但还有一些至今还是只能Ctrl+左键实现后台打开,如视频评论区的用户相关跳转,头像/昵称均没有链接(这个好像是去年还是今年改出来的问题),还有右上角的动态列表有几天不知道改了什么也是这个情况。


一个比较简单的鉴别方法是:鼠标悬浮上去,指针变成手型了,但是浏览器左下角没有显示目标链接,则是没法中键点击的跳转。


解决方法的话,有俩,一是通知网站开发者让他改,二是自己写个油猴脚本或者等大佬写(这个方案在15年有人对 特定网站 实现过,所以是可行的:Alegion - Fix JLL Property Brochure Link ,但是想做成通用的可能比较困难,毕竟onclick事件的写法太多了)。

补充一点点没提及到的

Notion网页指针放到链接上下方会显示可中键打开的a标签元素,能直接中键后台打开

对于中键无法直接在新标签页后台打开的链接(非标准a标签元素)主要分为两种情况:

  1. html页面中能直接找到完整的url,也就是楼主提到的幕布等网页
  2. html页面中没有完整的url,2楼提到的b站评论区的头像/昵称,这种麻烦点,还要先提取data-user-id的属性值来创建url

总之大致思路是先找到页面中的用于点击跳转的元素,然后移除它的点击事件,再给这个元素添加上带新创建url的点击事件

不过对于要想在新标签中后台打开,原生js似乎比较麻烦,而chrom扩展有内置的api能方便的实现,所以推荐使用扩展来实现,蹲下大佬


我的习惯是,左键当前标签中打开,中键新标签页中后台打开,右键是新标签页中前台打开

这款扩展足够满足我的要求了,所以推荐下: Right Click Opens Link New Tab Correct Order - Chrome 应用商店 (google.com)

它只能对带hfre属性的a标签有用,但我强迫症不严重,也能将就用吧

1 个赞

Workflowy表示他没问题,有问题的是幕布