html5会话存储有哪些替代方案?(不是本地存储)

时间:2015-06-11 05:18:15

标签: javascript ios html5 session-storage

我想要2个javascript方法来访问某些数据,而不将这些数据作为参数传递给任何方法。基本上我想要一种方法来设置数据,而另一种方法是使用浏览器中已有的对象来使用该数据,我希望该解决方案能够与Safari,Firefox,Chrome和IE8 +以及iOS和Android浏览器一起使用。我认为会话存储在iOS上不起作用。这是对的吗?会话存储的缺点是什么。我试图将数据附加到事件对象,但它在firefox和IE中不起作用。

3 个答案:

答案 0 :(得分:1)

虽然sessionStorage适用于iOS,但您可以执行以下操作以获得旧版支持。您可以使用window.name。它贯穿整个会话(即直到浏览器选项卡关闭):

var myData = {
  'foo': 'bar',
  'foz': 'baz'
};

window.name = JSON.stringify(myData);

你可以读回来:

var myData = JSON.parse(window.name);

这当然需要来自浏览器的JSON支持,这使得非常旧的浏览器不在范围内。

答案 1 :(得分:0)

你可以使用“全局变量”(我把它放在引号中,因为我不确定它在Javascript中实际调用了什么)。但基本上你可以在你的一个javascript文件中创建一个对象并写入/读取它。

这样的东西
var data = { first: "first", second: "second" }

并根据需要在该对象中生成尽可能多的变量。函数会像

一样访问它
function(param) {
    var firstData = data.first;
}

或者我猜使用cookie更接近您所描述的自己的解决方案,但如果您只需要在Javascript方法之间传递数据,这似乎有些过分。

答案 2 :(得分:0)

我选择了数据属性而不是上面提到的方法,它们对我来说很好。 IE9和IE8提出了一些我需要解决的问题。在IE9& IE8数据属性有时工作,有时不工作。在我使用控制台查询元素的数据属性后,它们开始工作。