html href和javascript href之间的区别

时间:2014-04-27 16:18:47

标签: javascript html events onclick href

之间有什么区别
 <a href="link"><img src="img" /></a>

 <img src="img" onclick="self.location.href='link'" /> 

如果没有启用js,第二个选项将不起作用,还有什么?

UPD:是的,没有看错引号。

3 个答案:

答案 0 :(得分:0)

所有on个处理程序都是基于javascript的,并且仅在启用了javascript时才有效。

你的第二个陈述是错误的,它应该是

<img src="img" onclick="self.location.href='link'" /> 

两者都是相同的,除了一个是html,其他是javascript。

这两个版本都有好处,但结果是一样的。

答案 1 :(得分:0)

根据用户体验,两种方法之间没有区别(如果将游标:指针样式应​​用于javascript方法)。

然而,不同领域存在显着差异。

语义。 在语义层面上,您无法知道与javascript相关联的意图。你知道当你使用锚元素时。然后确定这个元素(以及它的孩子)的目的是在其他地方导航。

它引领我们到第二个领域 - 搜索引擎优化。要正确索引页面爬虫,需要知道它的结构以及页面的关联方式。 Crawler不解释javascript代码。它只使用HTML代码来分析您的网站。

最后有可访问性。它与语义直接相关。例如,屏幕阅读器在锚元素和图像元素上表现不同。他们根本不知道这个图像是导航元素。因此,您的某些用户可能不会注意到有一个锚点。

我的建议是不要在这种情况下使用javascript。锚元素是最佳选择。

答案 2 :(得分:-3)

一个区别是纯html href无法更改端口号。如果要链接到其他端口,则必须使用js。