如何使用JavaScript或jQuery或通过任何其他技术访问访问过的链接历史
答
enter code here
它不是由JavaScript的支持,我也试图找到方法收集a:访问链接数据以隐藏访问的节点。
一些参考: 隐私和:访问选择器 - CSS | MDN
如果你只关心样式,你应该可以通过CSS实现它,但通过屏幕上显示的内容应该是观察它被访问的唯一方法。
我在Greasemonkey的userscript中这样做,让那些没有:visited风格的网站显示那些已经访问过的链接。
// ==UserScript==
// @description ADD a:visited for CSS
// @include *annalscts.com*
// @include *thejns.org*
// @include *turkishneurosurgery.org.tr*
// @include *nature.com*
// @include *academic.oup.com*
// @include *sagepub.com*
// @grant GM_addStyle
// ==/UserScript==
GM_addStyle('a:visited {color:#EE5665 !important}');
为了收集数据,以本地我使用的Greasemonkey API
GM_setValue
GM_getValue
我只是看着教程在Youtube上的API,并尝试写入到userscript
的Greasemonkey API:值只是在Youtube上搜索这个标题。
书面指导:http://nulleffort.com/greasemonkey-api-values/
Greasemonkey的文档:https://wiki.greasespot.net/Greasemonkey_Manual:API
我userscript的某些部分
//Firstly, var the ordinary variable preVisitedLinks and assigning to memory variable visitedLinks (At first the value should be undefined)
var preVisitedLinks = GM_getValue("visitedLinks");
unsafeWindow.aclick = function(tlink){
window.open(tlink, '_blank', 'toolbar=yes,scrollbars=yes,resizable=yes,top=10,left=10,width=10,height=10'); // click a button added and get the link visited in my script
//If the ordinary variable preVisitedLinks is undefined (First time running the script)
if(preVisitedLinks.includes('undefined')){
GM_setValue('preVisitedLinks', '|' + tlink.replace('http://paper.pubmed.cn/',''));
}
//If the ordinary variable preVisitedLinks is not undefined, continue to add each new string collect
else{
GM_setValue('preVisitedLinks', preVisitedLinks + '|' + tlink.replace('http://paper.pubmed.cn/',''));
}
//The ordinary variable preVisitedLinks assigning to memory variable visitedLinks value. The magic is the variable name the same.
preVisitedLinks = GM_getValue("preVisitedLinks");
if(preVisitedLinks.length > 27500){
preVisitedLinks = preVisitedLinks.substr(preVisitedLinks.length - 27500);
}
//The memory variable visitedLinks value assigning to the ordinary variable preVisitedLinks value
GM_setValue('visitedLinks',preVisitedLinks);
console.info(preVisitedLinks);
};
而在一些地方,我使用字符串来检测访问过的链接代码
if(preVisitedLinks.includes(trs[i].querySelectorAll('li')[0].querySelector('a').href.replace('http://xxx.xxxx.com/',''))){
trs[i].remove();
}
答
你可以创建你的自己的历史只是使用localStorage和添加锚的历史,他们被访问或点击了多少次,可能是这段代码片段不会在这里工作,你可以通过这段代码到你的文件或提琴它工作正常,历史记录保存在本地存储, 每次你点击锚点数量都在增加。
$('a').on("click",function(){
var anchorhistory=localStorage.getItem($(this).attr("id"));
if(anchorhistory){
anchorhistory=parseInt(anchorhistory)+1;
localStorage.setItem($(this).attr("id"), anchorhistory);
alert($(this).attr("id")+" is clicked "+anchorhistory+" Times");
}
else{
anchorhistory=1;
localStorage.setItem($(this).attr("id"), anchorhistory);
alert($(this).attr("id")+" is clicked "+anchorhistory+" Times");
}
})
ul a{
cursor:pointer;
color:blue;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li><a id='anchor1'>anchor1</a></li>
<li><a id='anchor2'>anchor2</a></li>
<li><a id='anchor3'>anchor3</a></li>
<li><a id='anchor4'>anchor4</a></li>
</ul>
即使你不能访问用户的历史,你只能检查什么是最后一个页面的用户通过'document.referrer'访问,使用JavaScript。 – Nevershowmyface