如何将Ajax链接标记为"访问"没有弄乱IE9

时间:2012-06-25 23:25:09

标签: javascript ajax html5 internet-explorer

我有一个页面,其中包含基于ID的文章中每个AJAX的链接。我正在尝试使用history.pushstate将文章标记为“已访问”。

我做了什么:

我使用文章的ID为每个链接添加了一个哈希值:

<a href="#ID=123" onclick="ajaxLoad('123')">Title</a>

在我的JS函数中,我有类似的东西:

if (window.history && window.history.pushState)
{
    window.history.pushState({articleID:"123"}, "Title",  "#ID=123");
} 

无论如何我的href中的值都没有使用,我只是把它放在那里,这样链接就会得到“访问”的CSS。这在大多数浏览器中运行良好,当然除了IE9。由于IE9不支持window.history,我从没想过它会起作用。

然而,我的问题是在IE中点击文章会更改URL以在其上附加哈希值,这会污染历史记录(现在必须单击一大堆时间才能返回)。

我知道我可以摆脱哈希并仍然有后退按钮工作(在IE之外),但我实际上更感兴趣的是确保我的链接被标记为“已访问”。反正是否有标记为“已访问”的ajaxy链接而没有IE9行为受到损害?

2 个答案:

答案 0 :(得分:3)

尝试将此添加到您的onclick处理程序:

if (event.preventDefault) event.preventDefault(); else event.returnValue = false;

答案 1 :(得分:0)

只需return false;处理程序onclick