我的目的是检测网页上未访问的链接,然后创建一个acobsmonkey脚本来单击那些链接。 这里的未访问链接是指我没有打开的链接。 由于我可以看到所有浏览器都提供了更改已访问和未访问链接的颜色的功能,因此有可能以任何方式检测到这些链接。 在搜索时,我遇到了以下链接: http : //www ...
提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供 中文繁体 英文版本 中英对照 版本,有任何建议请联系yoyou2525@163.com。
我注意到a:visited
样式不适用于通过JavaScript请求的链接。 在标准用户单击时,完全相同的链接注册为访问,立即和后续刷新。 我不确定这是否是jQuery Mobile (我第一次遇到它)的独特之处,或者它是否是我不知道的浏览器限制?
a:visited
匹配任何指向浏览器历史记录中的URL的链接。
如果您使用AJAX取消对URL的导航,则URL将永远不会在浏览器历史记录中结束。
您可以通过使用修复#
链接。
如果您希望它与历史记录和访问过的链接样式一起使用,您可能需要更改location.hash。
请记住,在基于浏览历史记录的访问链接浏览历史隐私漏洞受到You You Watch Porn网站的欢迎之后,访问链接样式在浏览器之间的工作方式有些不一致。
a:visited
只有在链接被“执行”时才会触发a:visited
。
指向AJAX调用的链接通常返回'false'(带有散列的解决方案( <a href="#">link</a>
)仍然返回false,否则用户将跳转到页面顶部)。
这样,链接永远不会被“执行”,因此不被标记为已访问。
好了,请不要改变a
元素的href
指向像其他的应答者说的混编网址-这将打破用户体验。 如果他们想要在新窗口中打开,那么它将需要加倍加载,如果你做更改服务器端它将破坏搜索引擎和js禁用用户。
问题是,如果您使用哈希将您的网站升级为RIA(富互联网应用程序),那么链接将指向mysite.com/page
但您实际访问mysite.com/#/page
因此您实际上并未访问原本的。
这里适当的解决方案是使用HTML5 History API,它允许您直接更改URL并挂钩到URL更改(因此不再需要哈希)。 你可以在这里阅读更多关于哈希vs hashbangs与HTML5 History API的利弊: https : //github.com/browserstate/history.js/wiki/Intelligent-State-Handling - 它还包括升级你网站的示例代码使用HTML5 History API。
jQuery Mobile计划将来用于HTML5 History API(目前正在进行中),但是现在我建议等待它实现。
您始终可以通过ajax回调在链接上设置一个类,该回调与a:visited共享样式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.