如何在 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)
{
//
}
我已经通过创建另一个函数、向其中添加我自己的功能然后调用 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)
{
//
}