css - 我可以使用 CSS :visited pseudo class on 'wildcard' links?

标签 css url css-selectors wildcard visited

假设我有一个包含多个链接的网站,如下所示:

www.example.com/product/1
www.example.com/product/2
www.example.com/product/3

我还会不时将跟踪信息附加到链接,以便我可以看到我的网站是如何被使用的,例如,如果有人从产品浏览器访问产品页面,我会设置一个 ref 参数:

www.example.com/product/1&ref=pb
www.example.com/product/2&ref=pb
www.example.com/product/3&ref=pb

问题在于,如果用户访问第一种类型的链接,然后查看第二种类型的链接,那么 :visited 伪类似乎不适用,因为浏览器似乎只匹配确切的 URL .从这个意义上说,有什么方法可以将“通配符”应用于链接,以便当用户看到第一种类型或第二种类型的链接时,它会突出显示吗?

注意:我无法更改此“ref”架构;它是继承的。

最佳答案

您可以使用 javascript 执行此操作。您可以按如下方式对链接进行编码

<a href="www.example.com/product/1" onclick="document.location.href='www.example.com/product/1&ref=ab';return false;">

对于启用了 javascript 的任何人,您将看到正在访问的 www.example.com/product/1&ref=ab,并且他们的浏览器会将所有带有 href=www.example.com/product/1 的链接检测为同一链接.并根据 :Visited 伪类适本地设置它们的样式。唯一的缺点是没有 Javascript 的人无法获得引用信息。这是否是一个可接受的折衷取决于您的要求。

你也可以这样做:

<a href="www.example.com/product/1" onclick="document.location.href=this.href + '&ref=ab';return false;">

因此您不必在其中对 url 进行两次编码。您甚至可以创建一个返回正确链接的函数,从一个地方获取 ref 值。

关于css - 我可以使用 CSS :visited pseudo class on 'wildcard' links?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2487924/

相关文章:

c# - .NET 的替代方案提供了关于 uris 和 url 的 api

html - 通过纯 CSS 选择一对 <br> 元素中的一个

java - 如何使用 Selenium WebDriver 读取::在单选按钮元素的属性之后

jquery - 更改背景位置 - 最好使用 jQuery 或 :hover with Selectivizr?

javascript - Prettify.js(语法高亮显示)不适用于 Tumblr 主题!

internet-explorer - IE 中的 CSS 模糊文本

javascript - 如何制作带有一些特定细节的下拉菜单

CSS 背景图像在#header 和#footer 之间缩放

html - 如何在网站中隐藏文件名(例如 "index.html")并使用部分?

子路径的 Django 错误 url 模式