Greasemonkey: Firefox <FF57 (على سبيل المثال FF56 و 52ESR) يجب ألا تتم ترقيته تلقائيًا إلى Greasemonkey 4

تم إنشاؤها على ١٣ ديسمبر ٢٠١٧  ·  13تعليقات  ·  مصدر: greasemonkey/greasemonkey

strict_min_version في GM 4.1 هو 52.0 . يؤدي هذا إلى قيام الأشخاص الذين يستخدمون إصدارات Firefox التي تعمل بالامتدادات القديمة (مثل FF56 و 52ESR) "بالترقية" إلى الإصدار 4.1. كثير من الأشخاص الذين يستخدمون FF 52ESR ، أو يواصلون استخدام FF55 / 56 ، يقومون بذلك على وجه التحديد حتى يتمكنوا من الاستمرار في استخدام الامتدادات القديمة.

يعد الإصدار القديم من Greasemonkey أكثر فاعلية من الإصدار 4.x وسيظل كذلك دائمًا. الأشخاص الذين يشغلون إصدارات من Firefox <FF57 لا يجب أن تتم "ترقيتهم" تلقائيًا إلى Greasemonkey 4.x.

وبالتالي ، يجب أن يحتوي ملف manifest.json على:

"strict_min_version": "57.0"

بينما يمكن للمستخدمين اختيار تعطيل التحديثات التلقائية لـ GM ، أو الإضافات بشكل عام (على سبيل المثال ، يمكن حل هذا الإعداد strict_min_version على أساس ملف شخصي على أساس ملف التعريف) ، فإن GM4 ليس "ترقية" حقًا. معظم المستخدمين يعتبرون ذلك بمثابة الرجوع إلى إصدار أقدم. لا ينبغي أن تتم ترقية المستخدمين تلقائيًا إلى GM4 عند استخدام GM4 ليس مطلوبًا بسبب عدم وجود دعم للإضافات القديمة في إصدار Firefox الذي يستخدمونه.

التعليق الأكثر فائدة

أعتقد أن الدافع عليك لتثبيت إصدار Greasemonkey الذي تريده ثم إيقاف التحديث التلقائي.

ال 13 كومينتر

أعتقد أن إعداد الإصدار الأدنى هو نتاج الفترة الزمنية التي يحتوي فيها الإصدار 3.x على WebExtension مضمن لتسهيل ترحيل البرنامج النصي. بدون خفضه ، لا أعتقد أنه سيتم تثبيت الملحق بشكل صحيح.

تم دفع 4.1 بإصدار أدنى أقل ، _oops؟ _. لا أعتقد أن هذا قد تم لإجبار الناس عن قصد على 4.x ، والعداء في المنشور لا مبرر له.

Sxderp لم يكن المقصود من العداء. أنا آسف أن الأمر بدا على هذا النحو. حتى إعادة قراءة ما كتبته ، لست متأكدًا تمامًا من الجزء (الأجزاء) الذي تعتبره معاديًا. لذلك ، قمت بتحريره ، تخمين (جزئيًا) ما شعرت أنه مرفوض.

يرجى ملاحظة أنه بينما قلت "قسري" (الذي كنت أقصده فقط وصف ما يحدث للمستخدمين) ، لم أقل "القوة المتعمدة" (وهو ما كان سيشير إلى أنني كنت أنسب بعض النية وراء الإعداد ، وهو ما كنت لا تحاول أن تفعل). [لقد جعلتني أخمن نفسي ثانية. لا أعتقد أنني قلت "القوة عن قصد" ، ولكن الآن بعد أن قمت بتحرير التعليق الأصلي ، لا يمكنني التحقق منه بنسبة 100٪ ، لأنني بصفتي مؤلف المنشور لا أتلقى بريدًا إلكترونيًا بالمحتويات. إذا فعلت ذلك ، فأنا آسف. لم يكن المقصود.]

ملاحظة: بينما لدي مشاعر سلبية تجاه Mozilla فيما يتعلق بقطع WebExtensions-only ، إلا أنني أشعر أن الأشخاص المتورطين مع GM يتعاملون بشكل جيد مع الموقف الذي وضعتهم فيه Mozilla. يتضمن ذلك الاضطرار إلى التعامل مع عدد كبير من الأشخاص الذين يلومون كتّاب الإضافات على أشياء هي خطأ Mozilla بالكامل.

eyep ، لقد "جمدت" FF الخاص بي في الإصدار 56 والآن مع GM4.1 حصلت على بعض الأخطاء الغامضة مثل "Error: Permission denied to access property "nodeType"" على نصوص بسيطة جدًا.

لقد حصلت على بعض الأخطاء الغامضة مثل

يتم تشغيل نصوص المستخدمين في سياق "البرنامج النصي للمحتوى". إذا تم الإعلان عن الكائنات / الوظائف في هذا السياق ، فيجب نسخها إلى النافذة قبل أن تتمكن النافذة من الوصول إليها. قامت Mozilla بتطبيق ميزة الأمان هذه وتمنع التسرب إلى نطاق الصفحة.

https://developer.mozilla.org/en-US/Add-ons/WebExtensions/Content_scripts#Sharing_content_script_objects_with_page_scripts

Sxderp نعم ، لقد قرأت بالفعل في ملاحظات التحديث أن unsafeWindow يعمل بطريقة مختلفة بطريقة ما ويجب على المرء استخدام exportFunction() or cloneInto() ويربط نفس المقالة التي قمت بها (والتي تشرح كيفية كتابة الإضافات ، وليس نصوص المستخدمين )). لا أحد يعطي أي أمثلة عن كيفية القيام بذلك في نصوص المستخدمين. ولكن هذا خارج عن الموضوع. النقطة هي أن FF <= 56 لا تعاني من هذا التخلف الكامل لذلك لا يوجد سبب لفرضها.

لا أحد يعطي أي أمثلة عن كيفية القيام بذلك في نصوص المستخدمين.

إلى حد كبير بالضبط نفس الشيء. إذا قال أحدهم "محتوى البرنامج النصي" ، فاستبدله بـ "usercript". تابع كالمعتاد.

على سبيل المثال ، هذا شيء قمت بنشره منذ بعض الوقت.

علاوة على ذلك ، إذا كنت تستخدم window.eval() فسيتم تشغيل الوسيطة مباشرة في نطاق الصفحة دون الحاجة إلى التعامل مع التصدير.

شكرا. أما بالنسبة إلى eval() - فإن EVAL شريرة والقاعدة الأولى لاستخدام EVAL هي "لا تستخدم EVAL".

يجب تجنبSpown IMO و exportFunction() و cloneInto() ، لأنهم من Firefox فقط. من الفوائد المهمة لكل من نصوص المستخدمين و WebExtensions أنه يمكن تشغيلها في متصفحات مختلفة. هناك العديد من الطرق التي يمكنك من خلالها تنفيذ التعليمات البرمجية في سياق الصفحة. الطريقة التي أقوم بها في كل من نصوص المستخدمين والبرامج النصية للمحتوى هي وظيفة ، executeInPage() ، والتي يمكنك العثور عليها في هذه الإجابة على Stack Overflow . يسمح لك بتمرير المعلمات إلى الوظيفة التي تستدعيها ، واستنساخ هذه المعلمات في سياق الصفحة. باستخدام وظيفة بسيطة تقوم بتعيين قيمة المعلمة التي تم تمريرها إلى متغير في سياق النافذة (على سبيل المثال window[variableName] ) ، يمكنك بسهولة القيام بما يفعله cloneInto() .

إنها ليست مرنة مثل cloneInto() ، لأنها تتعامل فقط مع Object ، Array ، function ، RegExp ، Date ، و / أو العناصر الأولية الأخرى ( Boolean ، null ، غير محدد ، Number ، و String ، لكن ليس Symbol ).

Sxderp قد يكون كل هذا صحيحًا ، لكنني لا أهتم حقًا لأنني اخترت عدم المشاركة في هذا الأمر برمته من خلال عدم التحديث إلى FF> 56. لكنها لا تزال تتسرب من خلال مثل هذه الحالة.

راجع للشغل ، محاولة إعادة استخدام jQuery للصفحة في البرنامج النصي الخاص بي (الذي يعرض الخطأ المذكور أعلاه) كما فعلت في المثال الخاص بك لا يزال ينتج عنه نفس الخطأ. نيفم

أعتقد أن الدافع عليك لتثبيت إصدار Greasemonkey الذي تريده ثم إيقاف التحديث التلقائي.

إذا قمت بالترقية إلى Greasemonkey 4 ، فهل من الممكن تثبيت Greasemonkey 3 للرجوع إلى إصدار أقدم ومتابعة استخدام ذلك ، إذا أردت؟ أو هل يقوم Greasemonkey 4 بإجراء تغييرات لا رجعة فيها؟

garyking ، يجب أن تكون قادرًا على الرجوع إلى إصدار سابق دون مشكلة. يجب أن تظل ملفات البرنامج النصي.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات