Вы не можете ожидать, что javascript:
URL будет поддерживать посещенное / не посещенное состояние. Это не реальные местоположения, это команды для браузера, которые нужно выполнить в текущем документе.
javascript:
URL-адреса также никогда не должны использоваться.
<a href="javascript:LoadGoogle()">Google using javascript</a>
Это полная катастрофа для доступности и удобства использования. И обычно по причинам SEO, хотя для внутреннего приложения это не имеет значения (и, возможно, Google справляется со своим SEO без вашей помощи.; -))
<a href="#" OnClick="javascript:LoadGoogle()">Google using javascript OnClick</a>
Это все еще плохо по тем же причинам, плюс вы забыли return false
в обработчике кликов, поэтому страница прокручивается вверх, а javascript:
в начале обработчика событий не имеет смысла, так как не URL. (В этом контексте javascript:
принимается за метку строки, что является практически совершенно бессмысленной языковой функцией, которую никто никогда не использует).
Вот такая разметка, которую вы хотели бы:
<a href="http://www.google.com/" onclick="window.open(this); return false;">Google proper link</a>
(На самом деле вы, вероятно, предпочитаете ненавязчивый скрипт, который не содержит атрибут onclick
.)
Это будет работать на всех устройствах, JavaScript доступен или нет, визуальный браузер или нет, он покажет правильную ссылку в строке состояния и позволит пользователю использовать все свои обычные инструменты браузера, такие как средний щелчок -for-new-tab или ссылка правой кнопкой мыши на ссылке без ссылки на ту же страницу, пустую страницу или ошибку.
Естественно, он также будет правильно отражать посещенное / не посещенное состояние самой целевой страницы, что с гораздо большей вероятностью будет точным, чем ложный javascript:
псевдо-URL. Указание атрибута href
на фактическое местоположение, которое действительно было посещено, является единственным надежным способом получения :visited
рендеринга.