使用JavaScript代替超链接

时间:2016-08-19 02:36:03

标签: javascript html5

由于RIA和SPA(或使用大量javascript的网络应用程序)变得越来越流行,我已经遇到了系统,而不是使用旧的a href超链接,我看到它们正在使用使用onclick构造使用JavaScript代码来操作导航。对于图像尤其如此。

例如,不要看到这样的事情:

<a href="some_url"><img src="...."/></a>

<div ... onclick='SomeJsFunctionThatNavsToAnotherPage()'><img src="..."/></a>

这有什么好处?这使得在调试或尝试root导致错误时跟踪页面转换的位置非常困难。我可以了解导航目标何时可以改变(是的,在这里你可以使用一个函数来计算要导航到的页面。)

但即使导航到的页面不变,我也会看到这种模式。我发现这非常复杂且难以测试。更不用说总是存在特定于浏览器的错误(遗憾的是根据我过度复杂化前端的经验。)

但我不是RIA / SPA开发人员(只是后端和传统的Web开发)。 我是否错过了这背后的理由?

TO CLARIFY

我的问题不适用于我们想要重绘页面或更改当前内容而不更改当前位置的情况。我的问题是明白的 旧的过渡,从第A页到第B页。

在这种情况下,为什么要使用onclick=funcToChangeLocation()而不是<a href="some location"/>

在对已编写的系统进行故障排除时,这对我来说很痛苦(因为我不会这样写),但可能有我不知道的原因。< / p>

同样,我的问题不是在不改变浏览器位置的情况下重绘自己的页面,而是从一个页面导航到下一个页面。

ALSO

如果您打算投票结束此问题,请至少留言解释原因。

2 个答案:

答案 0 :(得分:5)

如果您正在制作Web应用程序,有时您不想将用户重定向到另一个页面,但您希望动态更改页面内容而不刷新页面。它有一些优点。它可以更快。您可以轻松保持页面/应用程序的状态。您没有义务与服务器通信。您只能更新页面的一部分。

您还可以动态请求数据以打印页面。如果要显示用户配置文件页面,则只能询问代表用户的json对象。此json对象小于整个页面,将动态呈现。当带宽有限时,它可以帮助减少用户和服务器之间的数据传输。

编辑:在简单的页面重定向的情况下,我认为这是一个不好的做法,我看不到优势。我认为当Google抓取工具尝试解析网站时,它会混淆网站。

答案 1 :(得分:2)

我曾经有一个非常成功的网站目录网站。有一天谷歌决定“目录”是竞争企业,并开始惩罚有目录链接的网站。我使用您描述的方法隐藏外向链接以尝试欺骗Google。