uneval()在Chrome中添加了前缀

时间:2014-09-13 07:22:54

标签: javascript google-chrome userscripts tampermonkey

我在Firefox用户脚本中成功使用了serialization helpers

function deserialize(name, def) {
  return eval(GM_getValue(name, (def || '({})')));
}

function serialize(name, val) {
  GM_setValue(name, uneval(val));
}

他们也适用于较旧的Chrome版本。最近我注意到Chrome的uneval()开始在其结果中添加前缀\$1 =,打破了eval()反序列化:

uneval([56, 67]) -> "\\$1 = [56, 67];"

我现在必须检测并删除这个额外的前缀。是否有更合法的方式以跨浏览器方式保存数据?我只需要在同一个浏览器中恢复这些数据 - 无需关心存储格式。

Greasemonkey和Tampermonkey用于测试。

0 个答案:

没有答案