大多数与 Web 应用程序中的自定义 JavaScript 行为相关的用户交互元素可以是a
具有有意义的href
属性值的 HTML 链接(元素),使它们能够在非 JavaScript 启用的环境中使用:
<a id="profile" href="profile">Profile</a>
<script>
document.getElementById("profile").onclick = function() {
return !open(this.href, "_blank", "scrollbars=no,status=no"); // whatever
};
</script>
但是一些交互元素与 JavaScript 有着很深的联系,要么是因为它们所包含的 Web 应用程序需要 JavaScript 才能运行,要么是因为它们是由 JavaScript 生成的,当它不可用时没有任何意义。
对于那些,因为我希望用户能够与他们在任何设备上进行交互(即我不想自己定义鼠标、键盘、触摸......在span
元素上的交互),我看到两个相关的 HTML 元素:a
和button
。
我对a
这里元素的问题是它至少定义了一种我不想要的行为:用户能够在任何他想要的地方打开其目标(例如在新标签中),而我想要进行的交互是特定于当前选项卡。
我对button
这里元素的问题是,据我从在线资源中得知,很难在所有现代浏览器上可靠地设置样式(但我不确定现在是否仍然如此)。
这个问题的某些方面已经在其他地方得到了解答,但我找不到全面且最新的摘要:您建议使用什么 HTML 元素?