gpt4 book ai didi

javascript - FF本地如何处理sessionStorage(测试用)

转载 作者:行者123 更新时间:2023-11-29 09:57:20 29 4
gpt4 key购买 nike

我正在尝试为我的所有 JS 编写测试,并且测试(我正在使用 Jasmine)在浏览器本地运行。由于安全限制(?),sessionStorage 在 Firefox 中无法在本地工作(在浏览器中查看 file:///...)。

简单示例:

window.sessionStorage.setItem('foo', 'bar');

这给出“错误:不支持操作”。

我尝试用我自己的模拟方法覆盖 window.sessionStorage,但没有成功。

目前我唯一的解决方案是将与 sessionStorage 相关的所有内容都放在 try/catch block 中。

对于如何最好地处理这个问题有什么建议吗?

最佳答案

Object.defineProperty 似乎适用于此,您可以模拟 sessionStorage 使用它:

var mockup = function() {
var table = {};
return {
getItem: function(key) {
return table[key];
},
setItem: function(key, value) {
table[key] = value.toString();
},
clear: function() {
table = {};
}
};
}();
Object.defineProperty(window, 'sessionStorage', { value: mockup });
// should output "Object { getItem=function(), setItem=function(), clear=function()}"
console.log(window.sessionStorage);

但此模型不适用于sessionStorage索引器 (window.sessionStorage[key] = value) Proxy构建 mockup 对象。

关于javascript - FF本地如何处理sessionStorage(测试用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9428210/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com