document.querySelectorAll('a:visited')不起作用

时间:2013-04-16 06:52:38

标签: javascript css google-chrome css-selectors selectors-api

document.querySelectorAll('a:visited')总是返回空的NodeList,即使DOM有一些访问过的链接。

我在Chrome中尝试过它。是否有任何已知错误或预期的行为?

如果我在样式表中使用:visited而不是querySelectorAll,那么a:visited{ color:yellow; } 可以正常工作。

querySelectorAll()

我认为允许伪类作为{{1}}的参数。

1 个答案:

答案 0 :(得分:9)

我找不到任何专门针对Chrome引用此行为的来源,但通常会这样做是为了防止页面上的代码访问用户历史记录,这是一个隐私问题。

Selectors API专门针对此问题a section。这是一个小的相关片段:

  

历史盗窃是一个潜在的隐私问题,因为选择器中的:visited伪类允许作者查询已访问的链接。
  ...
  根据选择器...中的定义,用户代理可以将所有链接视为未访问的链接