如果你转到fb或fb / messages /并运行此代码(在控制台中复制/粘贴或使用用户脚本),页面消息就会出现。特别是聊天窗口无法加载,链接无法正常工作,您无法点击中间按钮并随之滚动(鼠标滚轮仍可正常工作)并向上滚动聊天不会加载之前的聊天
我希望下面的代码没有任何改变。据我所知,它应该以完全相同的方式调用设置为XMLHttpRequest.prototype.open的任何内容。为什么这段代码会破坏Facebook?
// ==UserScript==
// @name Test
// @namespace mytest
// @include https://*.facebook.com/*
// @version 1
// @grant none
// ==/UserScript==
(function(open) {
XMLHttpRequest.prototype.open = function(method, url, async, user, pass) {
return open.call(this, method, url, async, user, pass);
};
})(XMLHttpRequest.prototype.open);
答案 0 :(得分:1)
我希望这是因为你传递“this”作为要绑定的对象,它不是原始的XMLHttpRequest对象,而是在函数定义中在作用域中创建的临时对象。所以它应该不起作用。您可以尝试创建一个临时的XMLHttpRequest对象并将其传递给它,这应该可以工作。