EDIT: 位于文章底部的解决方案
我特制的Grease Monkey脚本 使用 JQuery 过滤并修改我Facebook 新闻信息中的某些种子内容。 效果很好, 但这个特别的脚本效果不好:
$("h6.uiStreamHeadline:contains( shared ) a[id^= js_ ]").html("someone else");
这个功能将它转换成“John Smith分享别人的照片”。
以下是我其他的「过滤器」:
$("h6.uiStreamHeadline:contains( was tagged in )").closest("li").html("<li><i style= color:#CCCCCC;margin-left:15px; >Post Hidden (someone tagged somewhere else)</i></li>");
$("h6.uiStreamHeadline:contains( were tagged in )").closest("li").html("<li><i style= color:#CCCCCC;margin-left:15px; >Post Hidden (multiple friends tagged somewhere else)</i></li>");
$("h6.uiStreamHeadline:contains( commented on her own )").closest("li").html("<li><i style= color:#CCCCCC;margin-left:15px; >Post Hidden (someone commented on their own stuff)</i></li>");
$("h6.uiStreamHeadline:contains( commented on his own )").closest("li").html("<li><i style= color:#CCCCCC;margin-left:15px; >Post Hidden (someone commented on their own stuff)</i></li>");
$("h6.uiStreamHeadline .wallArrowIcon").closest("li").html("<li><i style= color:#CCCCCC;margin-left:15px; >Post Hidden (Wall-to-Wall post)</i></li>");
$("h6.uiStreamHeadline:contains( commented on a )").closest("li").html("<li><i style= color:#CCCCCC;margin-left:15px; >Post Hidden (people commenting on something i probably don t care about)</i></li>");
这些功能都很好, 当页面加载时可以替换这些功能。 但是, 相关函数不会更新, 直到我与它互动。 例如, 如果我把鼠标放在上面, Facebook的小弹出器出现后, 页面上的名字是“ 每个人的Funny- Pictures- for- person ”, 那么这个名称会变成“ 其他人 ” 。 我不知道为什么它不会在页面加载时改变。 我不知道它是否是一个时间问题, 但我不确定该做什么, 我不知道为什么其余的都有用 。
我理解有关函数与大多数其它函数稍有不同。 其余的则使用 closest ("li")
替换整个员额, 而我遇到麻烦的那个只是为了替换它所选择的 lt; a> a></ a> code> 标签中的内 HTML 或文字 。
提前感谢任何帮助。
我已想出解决问题的可行办法:
布洛克·亚当斯在下面提到,我试图选择的识别属性在与该元素互动之前并不存在。所以,我必须找到在页面载荷上的东西。我检查了该元素的内置 HTML,发现我想选择的一个元素是唯一一个没有等级属性的元素, 要么是在与之互动之前, 要么是在与之互动之后。 因此,我得出了以下看来效果不错的元素:
$("h6.uiStreamHeadline:contains( shared ) a:not([class])").html("someone else");
I & lt;3 JQuery XD