views:

265

answers:

2
  1. i'm using jquery. i have a anchor list. i'm enumerate anchors, if it visited, set display:none;
  2. i need when click on the anchor, anchor will changed to visited state from javascript?

How can i do?

+2  A: 

How about doing it through CSS?

a:visited {display:none;}
Amarghosh
+3  A: 

Yeah, see here for an example. It uses getComputedStyle to find out if a link has been visited. There's also a variant of this hack that doesn't require scripting.

The relevant part of the example is this (modified for clarity):

a:visited {
    color: #00f;
}

var link = document.createElement('a');
link.href = 'http://example.com/';
document.body.appendChild(link);
var color = document.defaultView.getComputedStyle(link, null).getPropertyValue('color');       
// check for visited
if (color == "rgb(0, 0, 255)") {           
    alert(link.href + ' has been visited');
}

May I ask what do you need it for?

Edit: WRT #2, you could open the link in an iframe. That would mark it as visited in the browser history. Like so:

var iframe = document.createElement('iframe');
iframe.src = 'http://example.com/';
document.body.appendChild(iframe);

Edit: You can create new CSS rules with JS. There's a jQuery plugin to make it more simple. Basically, you would do it like this:

$.rule('a:visited { color: #f06 !important }').appendTo('style');
Reinis I.
i'm hacking some client generated html. this anchor code is not mine.
ebattulga
Thank you. This is good idea for checking any link already visited on client browser. But my problem is all state color is same.I'm trying to override anchor css style, but color shown previously. My most of goal is change anchor visited state style.
ebattulga
See my edit about adding new styles.
Reinis I.