我有这个页面有很多我不需要的数据,因为我已经点击了它,但它经常重复,所以我必须在视觉上寻找蓝色。我意识到这可能更有效率,并询问一位CSS好友是否可以根据是否已访问包含链接将元素设置为隐藏。显然你需要js。
导致li.result元素删除(或可见性:无)的树:
li.result
div.avatar
a
我正在试图通过谷歌搜索来弄清楚如何做到这一点,并获得了一些关于专家性别变化的东西,但没有多大帮助。你会怎么做?
这适用于Greasemonkey,因此涉及向页面添加代码和检查Cookie的提示无用。我很抱歉没有让这个更清楚,而不仅仅是标记之前的油脂。
答案 0 :(得分:4)
1.您可以使用a:访问过的css选择器。
a:visited{
display:none;
}
它会隐藏访问过的链接(至少在firefox中)。
2.如果您想删除上面的div和li,您可能需要使用cookie并记住用户点击的链接。
所以:
当用户点击链接时,将该链接ID放入Cookie中。 然后,对于Cookie中的每个链接ID,您可以使用jQuery之类的内容:
var ids = $.cookie("cookie_with_ids");
var split_ids = ids.split(','); // split by comma
for(var i= 0; i<split_ids.length; i++){
$("link_"+split_ids[i]).parent().parent().hide();
}
html应该类似于:
<li class="result">
<div class="avatar">
<a href="#" id="unique_link_id_on_this_page"> ....
这不是通过任何方式进行测试,但它应该给你一个关于你必须做什么的想法。
对于Cookie处理,您可以使用jquery cookie plugin
答案 1 :(得分:0)
请注意,之前我没有使用Greasemonkey,而且我的JS知识充其量只是简单。
您是否无法使用JavaScript向现有<style>
代码或<head>
添加样式声明?
例如,添加将不同颜色应用于不同链接的规则:
li.result div.avatar a {
color: #000;
}
li.result div.avatar a:visited {
color: #111;
}
然后遍历归类li
的所有result
元素,检查其中包含的a
颜色是#000
还是#111
。在我看来会创建一个基本的:访问过的检查器。我现在要测试它(如果只是为了学习一些东西),但这种事情是否可行?
答案 2 :(得分:0)
这是一个朋友为我鞭打的那个完美无缺的人。主要发布以防其他人最终发现它有用。
// ==UserScript==
// @name Twitter Search Seen
// @namespace http://ctho.org
// @description Hides tweets you've seen
// @include http://search.twitter.com/*
// ==/UserScript==
for each (var i in document.links) {
if (i.parentNode.className == "msg" && i == i.parentNode.childNodes[1]) {
//alert(getComputedStyle(i, null).color);break;
if (getComputedStyle(i, null).color == "rgb(147, 13, 133)") {
i.parentNode.parentNode.style.display="none";
}
}
}
Hackish,是的,你理论上可以使用时尚来设置已知颜色的访问链接。