随着 Vue 的使用范围越来越广,不使用 <a>
标签的程序员越来越多,各种链接都是 <div>
<span>
加事件绑定一把梭,还见过用 <button>
的异端。鼠标中键和 Ctrl+鼠标左键
完全被废弃。
做为用户,有啥浏览器插件能让链接点击后在新标签页打开。如图所示
1
shintendo 2022-03-17 10:06:53 +08:00
这跟 Vue 有什么关系
|
2
sgiyy 2022-03-17 10:14:33 +08:00
跟前端框架没关系。
实际中有时也会这么做,比如在新标签页打开或跳转前,需要发起请求或进行校验后才可以执行。 正常不需要校验或发起请求啥的,确实应该用正常的 a 标签。 |
3
C603H6r18Q1mSP9N 2022-03-17 10:18:27 +08:00
a 标签 target=_blank 可以,直接硬写。
click 里面 window.open(url) 也可 |
4
lalalaqwer 2022-03-17 10:20:57 +08:00
用户的话应该没办法搞这个事了,毕竟是路由跳转都是在 js 代码里面写的
|
5
Axnir 2022-03-17 10:23:13 +08:00 via iPhone
跟 Vue 没关系,就是写代码的程序员写的不规范
|
6
libook 2022-03-17 10:24:18 +08:00
https://developer.mozilla.org/zh-CN/docs/Web/API/Window/open
能用 a tag 的时候尽量用 a tag ,需要拦截事件做前置准备的话就监听事件。 你也可以监听 ctrl 键是否被按住,如果同时触发点击操作使用 window.open 打开新页面,否则就 window.location.href 在当前页面跳转。这个你可以用封装成组件在各个地方复用。 建议去 MDN 上刷一遍 Web API 的文档,能给你提供很多解决问题的思路。 |
7
hicdn OP |
9
shintendo 2022-03-17 10:56:24 +08:00
@hicdn 大兄弟,前后端都要校验的,后端校验是为了安全和正确性,前端校验是为了体验,用户不会希望表单填完提交上去跳到结果页被告知填的格式不对,javascript 诞生第一天的最初目的就是做这个
|
10
sgiyy 2022-03-17 11:06:19 +08:00 2
|
11
learnshare 2022-03-17 11:08:53 +08:00
学一下 Web 基础课吧
<a href="URL" target="_blank">LINK</a> window.open(URL) |
12
ccyu220 2022-03-17 11:13:58 +08:00
现在的前端不会切图就算了,连基础都不会了吗。
|
13
Vegetable 2022-03-17 11:16:48 +08:00
不要把你的错误认知放大到其他人行吗?
window.open("https://v2ex.com","_blank") |
14
Vegetable 2022-03-17 11:23:57 +08:00
单页面开发的网站,有时候没办法实现新标签页打开的功能。设计上没有考虑这一点,比如将某些状态保存在了内存中,直接打开 url 是无法还原状态的。和 vue 没什么关系,和开发者的认知有关系
|
16
devwolf 2022-03-17 11:38:58 +08:00
这问题的内容,确实很诡异……
|
17
konakona 2022-03-17 11:41:18 +08:00
不用 a 标签是为了阻止事件冒泡。
但这种明显只是为了 a 而 a 的标签乱用着实难受…… 新开窗口直接<a href="" target="_blank"></a> 事件新开窗口 <div onClick=""></div> function __ (){ window.open('url',"_blank")} |
18
learnshare 2022-03-17 11:41:24 +08:00
|
19
devwolf 2022-03-17 11:47:23 +08:00
#16 @devwolf 有歧义,只是想吐槽一下"op 的这例提问"本身让我个人觉得诡异。
op 可以去 mdn 看一下超链接相关的知识,属于 html 范畴: https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/a 以及 window.open: https://developer.mozilla.org/zh-CN/docs/Web/API/Window/open 还有 window.location.href: https://developer.mozilla.org/zh-CN/docs/Web/API/Window/location |