有人知道为什么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之后。