0

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

它似乎是对 Greasemonkey 类型用户脚本的某种保护。

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

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

有没有人对他们如何做到这一点以及围绕他们的街区工作的任何方式有任何想法?

4

1 回答 1

0

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

// Cache the original
document.______getElementsByClassName = document.getElementsByClassName;
// Overide the function
document.getElementsByClassName = function(classes){

http://jsfiddle.net/nmiddleweek/fj52f7f8/5/

也许您可以尝试使用其他 DOM 查询函数进行搜索?

但是,我没有解决方法。

缺口

于 2015-03-12T13:39:38.610 回答