我有一个充满链接的页面,文章中的每个 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 链接标记为“已访问”?