خطأ: نوع غير مدعوم لـ GM_setValue. الأنواع المدعومة هي: string و bool و 32 bit integers

لذلك ، لدي برنامج GreaseMonkey Script الذي يقوم ببعض العمليات مع الأعداد الصحيحة ثم يقوم بتعيين القيمة عبر GM_setValue .

Code:

  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

خطأ: نوع غير مدعوم لـ GM_setValue. الأنواع المدعومة هي: string و bool و 32 bit integers.

يتم تصدير القيمة A و B و C بشكل صحيح ، حتى يتم حساب قيمة الإجابة كما هو متوقع. فحصها مع مربعات حوار alert . المشكلة الوحيدة هي أنها لا تحدد القيمة عبر GM_setValue . في وقت سابق لم أكن أقوم بـ parseInt على var answer كنوع Math.floor يجب أن يرجع بالفعل إلى العدد الصحيح ، ولكن القيام بذلك على أي حال. (في كلتا الحالتين ، تكون الإجابة صحيحة ، ولكن مع تقديم أخطاء.)

لا أفهم ما يجري هنا. أي مساعدة هي موضع تقدير كبير.

Edit: Not sure how it matters, but here's the sample output via alert("A: "+A+"\nB: "+B+"\nC: "+C+"\n\nAnswer: "+answer);

A: 41751
B: 20513
C: 190164861567

Answer: 387050803650
0
وأضاف قيم العينة والإخراج. لست متأكدا لماذا هذا يهم ، ولكن لا يزال.
وأضاف المؤلف Hrishikesh, مصدر
وما هي قيمة الإجابة ؟
وأضاف المؤلف antyrat, مصدر

1 إجابة

حاول إضافة قيمة radix إلى parseInt وظيفة:

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

<�القوي> تحديث: </قوي>

القيمة الخاصة بك كبيرة جدًا لتخزين البرامج النصية لـ GM. رقم الدعم الأقصى 32 بت في mozilla 2147483647 راجع هنا .

لتخزين القيمة ، حاول تحويلها إلى سلسلة على سبيل المثال:

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

أو باستخدام طريقة toString() :

GM_setValue("answer", answer.toString());
0
وأضاف
ما زال كما هو. قيمة الإخراج بالفعل عدد صحيح.
وأضاف المؤلف Hrishikesh, مصدر
هذا مشغول. حاولت التنبيه (typeof (answer)) والذي أعطى رقم بدلاً من integer ، لذا فقد استخدمت answer.toString ( ) </القانون>. ولكن في الأساس أنت على حق. شكر. Aha ، لقد لاحظت أنك اقترحت toString أيضًا. شكر
وأضاف المؤلف Hrishikesh, مصدر
انظر إجابتي المحدثة
وأضاف المؤلف antyrat, مصدر