Question: FF2 (at least) doesn't mark as link as :visited if it triggers the onclick handler without following the href. I'm using onclick to fetch data from a server and modify the page and the link styling seems appropriate here. But the link is not marked as visited.

Is there a cross-browser way to mark the link as visited? Failing that, is there a way to determine the browser's a:visited styling and apply it to the link?

Thanks to all who replied.

Looks like the **answers** are:

* *Is there a cross-browser way to mark the link as visited?*  

No, there's no way to do this. Links are identified as visited if the href is in the browser history.
 * *Is there a way to determine the browser's a:visited styling?*  

No, not via javascript alone.

Answer: 
Here is how I did it. Only works in [browsers](http://caniuse.com/#search=history) that support HTML5 history api.

```
// store the current URL
current_url = window.location.href

// use replaceState to push a new entry into the browser's history
history.replaceState({},"",desired_url)

// use replaceState again to reset the URL
history.replaceState({},"",current_url)

```

Using replaceState means that the back button won't be affected.
Strictly speaking, there's no such thing as a "visited" state for individual links. It's the URLs themselves that are interpreted as "visited" by the browser. Any links that point at a URL in the browser's history will receive styling as defined by the :visited pseudo-style in your CSS.

You could try to fake it by setting the location of a hidden iframe to the desired URL, but that won't force the current page to re-draw so I doubt you'd see the :visited style updates w/o a refresh.

For the 2nd part of your question, I'd probably go with Jordan Jones' answer.