2009-12-23 44 views
3

我不打算改变链接(我听说这是不可能的,但如果不是我想知道如何)。如果需要添加到浏览器历史记录中,我很好。Jquery:将链接标记为已访问而不打开它们?

我想循环浏览页面上的所有<a>,并将其状态更改为访问。例如:

$("a").each(function(){ 
    //mark as visited (somehow?) 
}); 

基本上在我的页面上创建一个“全部标记为已读”按钮。 有什么建议吗?

+0

您是否希望自己的链接出现在用户浏览器的自动提示下拉菜单中,而不需要实际访问它们?你只想要视觉?告诉我们结果应该是什么,已经有很多好的答案,但是你知道,我们不知道哪个答案真的可以解决问题! –

+0

我正在创建一个rss阅读器的chrome扩展。我通过计算页面上的链接来计算阅读文章与未阅读文章。因此,为了将所有标记为已读,我必须以某种方式将它们添加到历史记录中。哦,好吧......我可能必须以某种方式将数据存储在localStorage中。 –

回答

2

你可以...

1)尝试使用AJAX(即$获得(a.href)),但我不知道这是否会实际工作。

2)试造型看起来象访问的链接(通过改变他们的CSS“颜色”属性),但这种做法实际上不会使他们在以访问链接

3)如果没有这些工作,你可以尝试做一些事情,如:

3A)创建的页面

3B)上隐藏的iframe目标属性添加到每一个标签页上,使它们指向隐藏的IFRAME

3C)在该ea内调用$(“a”)。click() ch循环(可能在每个页面之间有一定的延迟时间来加载)

如果这些工作都不起作用,我认为你运气不好。

+0

我在考虑将$ .get或$ .load添加到历史记录中 - 但那是因为我已经修复了......我想。 不幸的是,我正在寻找实际上改变状态不只是风格。我环顾四周,并没有找到添加到浏览器历史记录的方式......尽管很多人都希望这种情况发生。 看起来像隐藏的iFrame是要走的路。谢谢 –

0

它不是真的可以用你想要的方式,但是你可以将a:visited的CSS属性复制到一个名为“visited”的新类中,或者将其应用到你想要的链接上。

$('a').addClass('visited'); 
3

创建一个访问的链接(即设置其hrefwindow.location),以及您的每一个目标链接的样式设置为新创建的链接的计算样式。

+1

如果只是需要视觉,就很聪明.. –

+0

+1因为这是我在Google找到问题时寻找的答案 –