我有一个页面,其中包含基于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行为受到损害?
答案 0 :(得分:3)
尝试将此添加到您的onclick
处理程序:
if (event.preventDefault) event.preventDefault(); else event.returnValue = false;
答案 1 :(得分:0)
只需return false;
处理程序onclick
。