0

我有这个页面有很多我不需要的数据,因为我已经点击了它,但它经常重复,所以我必须在视觉上寻找蓝色。我意识到这可能更有效,并问一个 CSS 朋友我是否可以根据是否访问过包含链接将元素设置为隐藏。显然你需要js。

导致 li.result 元素被移除(或可见性:无)的树:

li.result
 div.avatar
  a

我正在尝试通过谷歌搜索来弄清楚如何做到这一点,并在 Expert Sex Change 上得到了一些没有太大帮助的东西。你会怎么做?

这是给 Greasemonkey 的,所以涉及向页面添加代码和检查 cookie 的提示是无用的。我很抱歉没有让这个更清楚,而不是之前只标记 postgreasemonkey。

4

3 回答 3

4

1.您可以使用 a:visited 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 插件

于 2009-01-11T10:14:52.593 回答
0

请注意,我以前没有使用过 Greasemonkey,而且我的 JS 知识充其量只是简单化。

您不能向现有<style>标签或<head>使用 JavaScript 添加样式声明吗?

例如,添加一条将不同颜色应用于不同链接的规则:

li.result div.avatar a {
    color: #000;
}

li.result div.avatar a:visited {
    color: #111;
}

然后遍历所有li分类的元素result,检查其中a包含的颜色是否为#000or #111。在我看来,这将创建一个基本的 :visited 检查器。我现在将不得不对其进行测试(如果只是为了学习一些东西)但是这种事情可行吗?

于 2009-01-11T22:36:43.420 回答
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";       
        } 
    }
}

哈克什,是的,理论上您也可以使用时尚的方式将访问的链接设置为已知颜色。

于 2009-01-13T02:56:07.843 回答