【问题标题】:What is the use of window.location.assign if hyperlinks do the same thing?如果超链接做同样的事情,window.location.assign 有什么用?
【发布时间】: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对象加载页面,而超链接使用&lt;a&gt;元素。

根据 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() 而不是 &lt;a&gt; 元素用于 HTML 按钮?

【问题讨论】:

标签: javascript html


【解决方案1】:

window.location.assign 不仅仅用于 HTML,您还可以使用它来动态更改网址。例如,您可能希望在登录后将用户重定向到另一个页面,但您需要先完成登录过程,以便您执行该过程,并在登录成功后使用此功能更改为另一个地址。像这样的用例还有很多。

另一个区别是当您使用此方法时,它不适用于已禁用 javascript 的浏览器。

由于第三个原因,可以有多种方法来完成同一件事,人们可以选择他们喜欢的方法,并对您应该如何执行某些操作有自己的看法。

猜你喜欢
  • 2014-06-16
  • 1970-01-01
  • 2011-02-27
  • 1970-01-01
  • 1970-01-01
  • 2022-07-12
  • 1970-01-01
  • 2012-10-24
  • 2022-12-17
相关资源
最近更新 更多