Facebook 已开始使用“-cx-PRIVATE-”作为其网站上许多 CSS 类名称的命名前缀。
这似乎是对 Greasemonkey 类型用户脚本的某种保护。
当在 facebook 网页上查询以“-cx-PRIVATE-”开头的类名时,Facebook 是否可以拦截对 document.getElementsByClassName 的调用并禁止该函数返回任何结果?或者另一种可能性是他们可以在拦截查询时更改类名,然后在查询完成后再次将其更改回来
我问这个的原因是在某些情况下,即使我可以在源代码中看到类名以“-cx-PRIVATE-”开头的元素,但是当我尝试通过 javascript 从用户脚本,document.getElementsByClassName 函数未返回任何元素。
有没有人知道他们是如何做到这一点的以及解决他们的问题的任何方法?
最佳答案
是的,覆盖内置函数是很有可能的。以下是 document.getElementsByClassName 的示例:
// Cache the original
document.______getElementsByClassName = document.getElementsByClassName;
// Overide the function
document.getElementsByClassName = function(classes){
http://jsfiddle.net/nmiddleweek/fj52f7f8/5/
也许您可以尝试使用其他 DOM 查询函数进行搜索?
但是我没有解决方法。
尼克
关于javascript - Facebook 的 CSS 类名称的 "-cx-PRIVATE-"前缀是否受到 Greasemonkey 类型用户脚本的保护?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15588011/