2

尝试这个。

在 Facebook 主页(您的 Facebook 订阅源)上的浏览器控制台中输入此代码:

setInterval(function(){console.log('blah')}, 100)

然后导航到网站的“消息”或“事件”部分。请注意,整个页面没有重新加载,新的 html 内容是使用 javascript 动态插入的。然而,不知何故 Facebook 取消了setInterval. 这也发生在setTimeout.

这是怎么回事?

4

1 回答 1

2

事实证明,Facebook 正在用自己的方式覆盖本机setTimeout和功能。setInterval您可以通过setTimeout在浏览器控制台中输入来查看这一点,它将返回一个与典型函数不同的native code函数。因此,Facebook 可以访问setTimeouts页面上的所有内容,甚至是通过第三方代码访问的内容,因此可以在您访问新页面时(或者在他们真正想要的时候)清除它们。

于 2012-11-17T01:41:51.240 回答