Javascript 访问链接后,Firefox会有选择地跳过状态更改或:已访问样式

Javascript 访问链接后,Firefox会有选择地跳过状态更改或:已访问样式,javascript,firefox,anchor,visited,Javascript,Firefox,Anchor,Visited,单击带有公共href(本地页面或网站)的链接后 成功加载href后,将显示FF2和IE7 链接:已访问的样式 对于href=“javascript:anyfunc()”的链接,IE7的工作原理如上所述 而FF2不显示:已访问的样式。没有任何变化 DOCTYPE 问:JS链接和:visited的行为是否被认为是正确的 问:点击JS链接后,FF2是否保持锚定状态不变 问:无需附加onClick处理程序或修改类/样式 对于JS,有没有一种简洁的方法告诉FF2使用:visted 样式设置独立于href是

单击带有公共href(本地页面或网站)的链接后 成功加载href后,将显示FF2和IE7 链接:已访问的样式

对于href=“javascript:anyfunc()”的链接,IE7的工作原理如上所述 而FF2不显示:已访问的样式。没有任何变化 DOCTYPE

问:JS链接和:visited的行为是否被认为是正确的

问:点击JS链接后,FF2是否保持锚定状态不变

问:无需附加onClick处理程序或修改类/样式 对于JS,有没有一种简洁的方法告诉FF2使用:visted 样式设置独立于href是另一个页面还是JS链接

示例如下:

<html>
<head>
<style>
div.links { font-size: 18px; }
div.links a { color: black; text-decoration: none; }

div.links a:visited { background-color: purple; color: yellow; }
div.links a:hover { background-color: yellow; color: black; }
</style>

<script>
function tfunc(info) { alert("tfunc: info = " + info) }
</script>
</head>
<body>

<div class="links">
    <a href="javascript:tfunc(10)">JS Link 1</a><br>
    <a href="javascript:tfunc(20)">JS Link 2</a><br>
    <a href="http://www.google.com/">Common href, google</a>
</div>

</body>
</html>

div.links{字体大小:18px;}
div.links a{颜色:黑色;文本装饰:无;}
分区链接a:已访问{背景颜色:紫色;颜色:黄色;}
div.links a:悬停{背景色:黄色;颜色:黑色;}
函数tfunc(info){alert(“tfunc:info=“+info”)}



很难为这些链接设置样式。。。虽然他们可能有相同的href,但他们可以通过JS做任何事情(这可能会让访问它看起来不可能)

是否有一种方法可以链接到某个东西,例如HTML页面,并将事件处理程序附加到该链接(并返回false以停止链接的点击)?如果链接实际上是JS钩子,我会使用一个元素,比如
,并相应地设置它的样式。。。记住添加
cursor:pointer
,以便最终用户知道它是可点击的


在a href中使用内联
javascript:function(something)
是一种糟糕的做法。尝试不引人注目的事件处理程序。

我同意Alex的观点,链接应该是指向某个东西的链接,而不是JS触发器-按钮在这里更有效

如果您确实想将某个JS函数附加到链接上,那么一定要使用一些不引人注目的JS将该函数附加到click事件上

例如,使用jQuery:

$("#myLinkID").click(function () { 
  //function stuff
});

a:悬停必须在CSS定义中的a:链接和a:访问之后才能生效

以下是我的看法:

问:JS链接和:visited的行为是否被认为是正确的

链接的目的是检索资源。如果你的链接哪儿都没有,你在“访问”什么?在我看来,从这个角度来看,这种行为是正确的

问:点击JS链接后,FF2是否保持锚定状态不变

它似乎不会将链接的状态更改为:visted,除非它指向页面中的元素(这意味着链接指向隐式访问的当前页面)或已访问的其他资源

问:在不必附加onClick处理程序或用JS修改类/样式的情况下,是否有一种简洁的方法告诉FF2使用:visted样式,而不依赖于href是另一个页面还是JS链接


我不这么认为。如果您将链接的
href
指向“#”,并根据您的JavaScript需求使用
onclick
处理程序,您可能会获得访问效果。

我遇到了我认为这个问题所问的问题。考虑这个简单的例子:

样式表:

#homebox { display: none;}
#contactbox { display: none; }
html:

虽然不是最漂亮的代码,但它指出了在a href中使用javascript onlick时可能出现的一些问题。您可能希望这样做的原因是创建动态内容更改,而无需重新加载即可显示已访问的样式。a链接将比按钮更方便,因此链接的访问状态将保持不变,即使是内部链接。然而,我注意到浏览器在触发内部链接的访问状态时存在一些问题,更不用说javascript onclick事件处理程序的内部链接了。一个按钮需要编写一个函数来控制访问的样式

<a id="#home"></a>
<a href="#home" onclick="return showHideDiv(this);">Show Home</a>
<div id="homebox">Your home</div>
<a id="#contact onclick="return showHideDiv(this);"></a>
<div id="contactbox">Contact Info</div>
function showHideDiv(elem) {
if( elem.style.display && elem.style.display == "none"; ) elem.style.display = "block";
else if( elem.style.display && elem.style.display == "block"; ) elem.style.display = "none";
return true;
}