0

我有一个充满链接的页面,文章中的每个 AJAX 都基于一个 ID。我正在尝试使用 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 之外),但我实际上更感兴趣的是确保我的链接被标记为“已访问”。无论如何都可以在不损害 IE9 行为的情况下将 ajaxy 链接标记为“已访问”?

4

2 回答 2

3

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

if (event.preventDefault) event.preventDefault(); else event.returnValue = false;
于 2012-06-25T23:52:51.593 回答
0

只需return false;来自您的onclick处理程序。

于 2012-06-25T23:46:09.240 回答