IE11不接受字符串(变量)作为localStorage.setItem()的参数

IE11 not accepting string(variable) as parameter to localStorage.setItem()

本文关键字:setItem 参数 localStorage 作为 不接受 变量 IE11 字符串      更新时间:2023-09-26

有人知道为什么IE不接受字符串变量作为setItem方法的参数吗?

IE示例:

如此:

var itemName = 'anyname';
localStorage.setItem(itemName, 'anything');

这并´t:

var itemName = 'anyname';
var stringName = 'some string content';
localStorage.setItem(itemName, stringName );

返回"无效参数错误"。

有什么帮助吗?谢谢!:)

编辑。那篇文章涉及到另一个问题,在那篇文章中给出的例子(一个不适合他)实际上适用于我!我的问题表明,方法setItem不接受字符串变量,但接受一个普通的封闭引号字符串。此外,相关帖子中给出的解决方案对我的问题来说是不可接受的,我不能指望最终用户会安装一个IE11的bug修复程序。

经过大量搜索后,问题出在字符串的内容上。IE11 settitem方法不接受某些字符。我的原始字符串的内容有像'|'和'~'这样的东西。

我发现唯一的解决办法是在将其发送到setItem方法之前使用encodeURI(yourStringHere),然后在decodeURI之后。