Javascript Facebook的CSS类名前缀“-cx PRIVATE-”是否受到Greasemonkey类型用户脚本的保护?

Javascript Facebook的CSS类名前缀“-cx PRIVATE-”是否受到Greasemonkey类型用户脚本的保护?,javascript,css,facebook,greasemonkey,userscripts,Javascript,Css,Facebook,Greasemonkey,Userscripts,Facebook已经开始使用-cx PRIVATE作为其网站上许多CSS类名的命名前缀 这似乎是一种针对Greasemonkey类型用户脚本的保护 当在Facebook网页上查询以-cx PRIVATE-开头的类名时,Facebook是否可能拦截对document.getElementsByClassName的调用,并禁止该函数返回任何结果?或者另一种可能性是,他们可以在拦截查询时更改类名,然后在查询完成后再次更改类名 我问这个问题的原因是在某些情况下,尽管我可以在源代码中看到一些元素的类名以-

Facebook已经开始使用-cx PRIVATE作为其网站上许多CSS类名的命名前缀

这似乎是一种针对Greasemonkey类型用户脚本的保护

当在Facebook网页上查询以-cx PRIVATE-开头的类名时,Facebook是否可能拦截对document.getElementsByClassName的调用,并禁止该函数返回任何结果?或者另一种可能性是,他们可以在拦截查询时更改类名,然后在查询完成后再次更改类名

我问这个问题的原因是在某些情况下,尽管我可以在源代码中看到一些元素的类名以-cx PRIVATE-开头,但当我尝试通过javascript从用户脚本中选择它们时,document.getElementsByClassName函数不会返回任何元素


是否有人知道他们是如何做到这一点的,以及如何解决他们的问题?

是的,很有可能覆盖内置函数。下面是document.getElementsByCassName的示例:

// Cache the original
document.______getElementsByClassName = document.getElementsByClassName;
// Overide the function
document.getElementsByClassName = function(classes){
也许您可以尝试使用其他DOM查询函数进行搜索

然而,我没有工作


尼克

我没有看到任何页面上有这样的类名。请链接到一个或至少一个已保存的源。尽管如此,这并不能阻止Greasemonkey脚本。这似乎是一个跨浏览器的问题。如果我在chrome中查看源代码,我会看到cx私有类,但是如果我在Firefox中查看源代码,我不会看到它们。很奇怪。例如,当您将鼠标悬停在新闻提要中的某个故事上时,会显示打开“隐藏故事/报告为垃圾邮件”菜单的雪佛龙的底层代码。