This topic created in 2114 days ago, the information mentioned may be changed or developed.
本来可以做成一个普通的链接,非要用 onclick 之类的东西来作跳转,导致链接原有的功能不可用。比如右键「复制链接」、比如鼠标中键「在新窗口打开」。
以下 HTML 片段摘自某些网站:
// 点击后,会在新窗口打开链接 xyz.png
<p class="option preview" data-screen_glue_cid="sgk8897jh2xhboe5">预览</p>
// 点击后跳转到 /tasks/{task-uuid}
<div class="task-content__inner__oIt- hinted" data-title="增加排序功能">增加排序功能</div>
16 replies • 2020-08-28 15:29:20 +08:00
 |
|
1
otakustay Aug 28, 2020
就是偷懒,接 history api 还要用链接得加个 preventDefault
|
 |
|
3
bsg1992 Aug 28, 2020
跳转前需要做一些逻辑上的效验或者操作啊
|
 |
|
4
kop1989 Aug 28, 2020 1
1 、跳转前有逻辑需要执行。 2 、有可能你理解的界面切换并不是跳转。 3 、需要加大页面切换时,你恶意获取到信息的难度。
|
 |
|
5
Lax Aug 28, 2020
因为是 SPA,大部分情况下看似跳转其实页面主体并没有刷新,全靠 JavaScript 来更新页面内容
|
 |
|
6
yaphets666 Aug 28, 2020
你把这个事想的太简单了 在你看来只是跳转了一个页面 没准背后执行了很多代码
|
 |
|
8
whileFalse Aug 28, 2020 via iPhone
通常因为懒,或者技术不佳,或者开发者根本不知道还有中键点击这种需求。 Google 十年前就实现了的技术,有什么难的。Google 搜索结果页面里面的链接,鼠标指过去都是原始链接,mousedown 的时候就给你加私货。
另有一种情有可原。你在 A 页面点击了按钮 B,页面变为 C 。但实际上并不存在 C 这个页面,也就是说没有一个能直达 C 的 URL,只能通过 A 页面点进去。这种情况肯定就不能提供 URL 形式的链接了。
|
 |
|
9
ChanKc Aug 28, 2020 via Android 4
我的理解 所有发生 URL 变化的都应该使用 a,并且支持中键点击 除此以外的,比如打开模态框对话框,可以用 button 做不到的都是 a11y 有缺陷
|
 |
|
10
Jason2393 Aug 28, 2020
加个 role="link" 就可以优化不少体验,懒得做 a11y 呗… 还是不够关注交互
|
 |
|
11
wangxiaoaer Aug 28, 2020 via iPhone
那些说因为跳转前要执行代码或者 SPA 所以不用链接的,真是笑死我了。
链接跳转跟执行代码不冲突。 SPA 还有前端路由可用。
|
 |
|
12
wangxiaoaer Aug 28, 2020 via iPhone
个人能想到的原因: 1 懒 2 菜 3 反爬
|
 |
|
14
loading Aug 28, 2020 via Android 1
故意的,像现在新浪,手机版本,长按标题根本不能新窗打开,点进去后返回,全部新闻都刷了个新的,简直智障。
|
 |
|
15
Sapp Aug 28, 2020
因为简单,比如你没发现现在很多前端都不在 url 里携带内容了吗? 复制一下重新打开,信息全丢完了,就是因为这样是最简单的
|