1

所以,我有 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 正在正确导出,甚至 answer 的值也按预期计算。alert用对话框检查它。唯一的问题是,它不是通过设置值GM_setValue。早些时候我并没有这样做parseIntvar answer因为类型Math.floor已经应该返回整数,但无论如何都要做。(在这两种情况下,答案都是正确的,但给出了错误。)

我不明白这里出了什么问题。非常感谢任何帮助。

编辑:不确定它的重要性,但这是示例输出alert("A: "+A+"\nB: "+B+"\nC: "+C+"\n\nAnswer: "+answer);

A: 41751
B: 20513
C: 190164861567

Answer: 387050803650
4

1 回答 1

1

尝试为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());
于 2012-06-22T10:13:48.093 回答