【发布时间】:2021-07-08 02:17:32
【问题描述】:
许多网站都提供指向其他网站的外部链接。其中一些使用超链接:
<a href="https://example.com">Click me</a>
其他人使用按钮:
<button onclick="window.location.assign('https://example.com');">Click me</button>
原来按钮使用window对象加载页面,而超链接使用<a>元素。
根据 W3C 发布的 HTML5 验证器,按钮元素不应是 a 元素的子元素。
这失败了:
<button>
<a href="https://stackoverflow.com">See New Questions</a>
</button>
但window.location.assign与a元素相同,如下sn-p所示:
$('button').click(function() {
window.location.assign('https://stackoverflow.com');
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button>See New Questions</button>
<a href="https://stackoverflow.com">See New Questions</a>
那么,为什么 W3C 更喜欢 window.location.assign() 而不是 <a> 元素用于 HTML 按钮?
【问题讨论】:
-
可以将链接设置为看起来像一个按钮。 getbootstrap.com/docs/4.0/components/buttons/#button-tags
-
javascript 无法在 elinks/links2 等非 javascript(控制台)浏览器上运行
标签: javascript html