错误:GM_setValue不支持的类型.支持的类型包括:字符串、布尔值和 32 位整数



所以,我有GreaseMonkey脚本,它对整数进行一些操作,然后通过GM_setValue设置值。

代码

  var A = parseInt(StringA);
  var B = parseInt(StringB);
  var C = parseInt(StringC);
  var answer = parseInt(Math.floor(Math.max((A/B),1)*C));
  GM_setValue("answer",answer);

现在这在 Chrome 中工作得很好,但不知何故在 Firefox 中失败了,给

Error: Unsupported type for GM_setValue. Supported types are: string, bool, and 32 bit integers.

值 A、B 和 C 正在正确导出,甚至答案的值也按预期计算。用alert对话框检查了它。唯一的问题是,它没有通过GM_setValue设置值。早些时候我没有对var answerparseInt,因为Math.floor类型已经应该返回整数,但无论如何都这样做。(在这两种情况下,答案都是正确的,但给出错误。

我不明白这里出了什么问题。任何帮助将不胜感激。

编辑:不确定它有多重要,但这是通过alert("A: "+A+"nB: "+B+"nC: "+C+"nnAnswer: "+answer);输出的示例

A: 41751
B: 20513
C: 190164861567
Answer: 387050803650

尝试将radix值添加到 parseInt 函数中:

parseInt(Math.floor(Math.max((A/B),1)*C), 10);

更新:

您的值太大,GM 脚本无法存储。Mozilla 中支持的最大 32 位数字2147483647在此处查看。

要存储您的值,请尝试将其转换为字符串,例如:

GM_setValue("answer", "" + answer + "");

或使用toString()方法:

GM_setValue("answer", answer.toString());

相关内容

最新更新