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

P K*_*P K 5 javascript css google-chrome css-selectors selectors-api

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

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

虽然:visited工作完全正常,如果我使用的样式表,而不是querySelectorAll.

a:visited{
    color:yellow;
}
Run Code Online (Sandbox Code Playgroud)

我认为伪类是允许的参数querySelectorAll().

Jam*_*ice 10

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

Selectors API有一个专门针对此问题的部分.这是一个小的,相关的片段:

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