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

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


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

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


上面的方法非常出色,用localStorage.setItem代替localStorage["setItem"]也可以。

尽管这在Google Chrome上有效,但在Firefox localStorage["setItem"]localStorage.setItem上,它们被视为localStorage中的存储项,而不是新功能,因此,每当调用localStorage["setItem"] = function(){...}时,function() {...}都将作为字符串存储在位置在setItem中。有人知道为什么Firefox与Chrome区别对待吗,或者是否存在解决此问题的方法?

最佳答案

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

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

09-26 14:22