[英]How to show a confirmation box when a <link to="###"> is clicked
当用户点击时,我想在 javascript 中显示一个确认框
<link to="###">XYZ <link>
我已经尝试过<Link onclick="return confirm('Are you sure?')" to="###" >XYZ</Link>
但它没有给出想要的结果。
(现在问题标签已更改,答案已编辑)
<link>
不是您要执行的操作的有效标记; 它专为调用和嵌入外部资源的页面而设计。 不允许有子内容,并且当放置在文档正文中时不会响应用户事件(我相信,虽然不确定,它必须在文档<head>
。)
https://developer.mozilla.org/en-US/docs/Web/HTML/Element/link
任何有效的 HTML 实体都可以像您显示的那样工作:
<a onclick="return confirm('Are you sure?')" href="###" >XYZ</a> <div onclick="return confirm('Are you sure?')" >ABC</div>
...但我怀疑您打算使用<a>
标签。 (正如 ScottMarcus 在评论中正确指出的那样,锚标签作为任意 javascript 的钩子是不正确的,但由于您在这里控制的是导航本身,它是一个合适的标签。)
您已将“reactjs”标签添加到问题中,因此很明显您尝试使用的实际上是 React 组件“Link”,而不是(完全不同的)HTML 标签。
我远非 React 专家,但似乎您需要将事件处理程序包装在 {} 括号中而不是引号中(这会导致 React 将内容解释为字符串)——并且可能应该将confirm
代码移动到React 组件中包含的函数。
不能以您想要的方式使用link
元素。 它只允许出现在文档的head
,用于链接到页面所需的外部资源。
此外,您不应该首先使用任何类型的链接打开确认对话框,因为它在语义上是不正确的,并且会导致依赖辅助技术(如屏幕阅读器)来查看页面的人出现问题。 此外,您需要通过return false
或event.preventDefault()
取消点击链接的本机行为,这实际上意味着您正在向浏览器询问链接,但请禁用该链接,这是违反直觉的。 链接 ( <a>
) 用于导航,不应仅用作触发某些 JavaScript 的“钩子”。
body
几乎所有元素都支持click
事件,对于这样的事情,一个button
或一个div
可以轻松完成这项工作。
document.querySelector("div").addEventListener("click", function(){ console.log(prompt("What is your favorite color?")); });
<div>Click Me</div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.