IE6:JavaScript超链接不起作用

时间:2009-10-09 18:50:46

标签: javascript html internet-explorer internet-explorer-6

我正在使用JavaScript对HTML超链接上的表进行排序:

这种从低到高:

<a id="asc" href="#" onclick="javascript:sort('asc');">Low</a>

它在Firefox / Chrome / Safari中运行良好,但在IE6中不起作用。

Live site here.

点击排序“高”或排序“低”链接。

知道为什么它适用于除IE6之外的所有浏览器吗?

根本原因似乎是IE6没有将光标箭头改为小手,因此超文本甚至可以点击。现在,当我将鼠标悬停在IE6的链接上时 - 排序链接甚至无法点击

此外,我的页面通过了w3 validation,所以这不是问题

2 个答案:

答案 0 :(得分:1)

尝试:

<a id="asc" href="javascript:void(0)" onclick="displayHomeListings('asc');">

或者

<a id="asc" href="#" onclick="displayHomeListings('asc');">

理想情况下,如果在用户浏览器上禁用JavaScript,您的点击仍会做一些合理的事情。在那种情况下,

<a id="asc" href="failsafe.html" onclick="displayHomeListings('asc'); return false;">

注意onclick结束时返回false。如果JS成功,则停止访问href。有关该主题的进一步讨论,请参阅this SO帖子。

编辑:

现在您在关于手/光标的问题中提供了其他信息:

如果光标在悬停时没有变为手,这表明你有一些无效的HTML,并且IE6无法以你期望的方式解析页面。您是否尝试过通过HTML验证程序运行它?试试http://validator.w3.org/

答案 1 :(得分:1)

不确定您是否反对使用jquery,但它往往会解决许多这些跨浏览器的不兼容问题。

http://jquery.com

只是一个想法。

但是,只是为了补充Matt的说法,你可以尝试这个选项(它通常适用于IE):

<a id="asc" href="javascript:displayHomeListings('asc'); void(0);">link</a>

(请记住,对于没有javascript的用户来说它不起作用......它不会做任何事情......)