所以,我有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 answer
做parseInt
,因为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());