一个网站有以下代码:
var Items = {
drop: function (a, b, d) {
if (!(typeof a == "undefined" || typeof sockets[a.id] == "undefined")) {
SSocket.send(sockets[a.id], {
action: "item_drop",
data: {
id: d
}
});
Inventory.add(a, d)
}
},
give_to_player: function (a, b) {
Items.drop(a, void 0, b)
},
take_from_player: function (a, b) {
var d = clients[a];
Inventory.remove(d, b);
Player.send_inventory(d.id)
},
};
我正在尝试使用用户脚本将 give_to_player 属性替换为我自己的函数。但是,我这样做的运气为零。我熟悉javascript注入和变量范围。
我尝试了以下方法:
Object.defineProperty(window.Item, 'give_to_player', {
value:
function(a,b){
console.log('Change occured');
}
});
这不会产生任何错误,但是更改不会生效并且控制台保持为空。我也尝试过 Object.defineProperties,但没有运气。
最后,以下代码也未能产生结果:
window.Item.give_to_player = function(a,b){ console.log('Change occured');};
有没有人有什么建议?
我正在使用 Chrome 来运行我的用户脚本。