如何在 Firefox 中编辑函数 setItem?

How to edit function setItem in Firefox?

我已经通过创建另一个函数、向其中添加我自己的功能然后调用 apply(this, arguments) 来设法检测 Javascript 中的函数:

window["functionA"] = function(){...}

在 Google Chrome 我还设法检测属于 localStorage 的函数 setItem 所以我写道:

localStorage["setItem"] = function(){...}

上面的工作非常出色,写 localStorage.setItem 而不是 localStorage["setItem"] 也可以。

虽然这适用于 Google Chrome,但在 Firefox 上 localStorage["setItem"]localStorage.setItem 被视为 localStorage 中的存储项而不是新函数,所以每当调用 localStorage["setItem"] = function(){...} 时,function() {...} 都会作为字符串存储在 localStorage 中的 setItem 位置。有没有人知道为什么 Firefox 对待这个问题的方式与 Chrome 不同,或者是否存在解决这个问题的方法?

您是否尝试过修补 Storage 的原型?

Storage.prototype.setItem = function(key, value)
{
  //
}