مشاكل في إضافة مكون CSS/JS: تقوية الروابط للحفاظ على وظائفها

ملخص سريع:

  • مشاكل في دمج روابط جافاسكريبت و CSS لتمكين نوافذ الأدوات المنبثقة Robustify للروابط التشعبية على منتدى Discourse الخاص بنا.
  • بعض التشابهات مع هذه الحالة السابقة على الرغم من أننا نتوقف عن الاستعلام عن واجهة برمجة تطبيقات Robustify؛ قد يكون من المنطقي اتباع هذا المسار في النهاية ولكن كان القصد البدء بتمكين النوافذ المنبثقة للروابط التشعبية المغلفة بشكل صحيح.

التفاصيل:

أكتب إليكم بسؤال بسيط على أمل أن يكون مباشرًا حول تطبيق تطبيق CSS/JS صغير على منتدى Discourse الخاص بنا: نحن نحاول استخدام تطبيق صغير ورائع أعدته Mementoweb يرفق مربعًا منبثقًا بأي روابط تشعبية على الصفحة، مما يسمح لك بالاختيار بين الوصول إلى الموقع أو عرض نسخة مخبأة سابقة من الموقع إذا لم يعد الرابط يعمل. إنها ميزة رائعة حقًا!، ونأمل أن تحل بعض المشاكل الحتمية المتعلقة بالعودة إلى موقع ويب بعد عامين والعثور على روابط ميتة لصفحات غير مدعومة. في البداية، كنت آمل فقط في محاولة التأكد من أنها ستعمل عندما يقوم أحدنا بإنشاء رمز يدويًا على موقع Robustify (مثال).

يعمل التطبيق على بضعة أسطر من التعليمات البرمجية - يتم تغليف الروابط بعلامة a href أطول، وهناك روابط لجدول بيانات CSS وبعض تعليمات جافاسكريبت البرمجية في علامات الرأس. لم أكن متأكدًا تمامًا مما إذا كان Discourse سيسمح بتخصيص جافاسكريبت ولكني تشجعت حقًا بقراءة دليل المبتدئين ورؤية مقدار النطاق المتاح للتعديلات. نحن نستخدم سمة بعيدة (Sam’s Simple Theme) وقد حاولت إضافة تعليماتنا البرمجية إلى رأس الموقع كمكون جديد:


لم أتمكن من تشغيل هذا حتى الآن ولكنني اعتقدت أنني قمت بحله بالأمس، حيث قرأت عن الإضافات وقم بتغيير نوع JS الخاص بنا إلى "text/discourse-plugin" version="0.8.13"; لقد حاولت أيضًا حل المتغيرات الطفيفة لإعادة تحديد موقع CSS (ربط الورقة مباشرة بدلاً من كونها DOI؛ نسخ العلامات مباشرة في مساحة CSS؛ تضمينها كـ CSS مضمن، إلخ) دون أي نجاح - لا تزال المشاركات ذات الروابط المغلفة تظهر بدون نافذة منبثقة:


نقدر أي توجيه هنا!، وسأقوم بتحديث هذا المنشور إذا تعثرت في حل في هذه الأثناء.

هل يمكنك مشاركة لقطة شاشة لوحدة تحكم جافاسكريبت في متصفحك وعلامة التبويب Network؟ قد تكون مشكلة سياسة أمان المحتوى (CSP) التي تمنع تحميل كود جافاسكريبت في الصفحة.

إعجابَين (2)

TY Faizaan :slight_smile: بما في ذلك لقطة شاشة أدناه، لا يمكنني رؤية مشكلة CSP على الفور ولكن يسعدني تجربة جهاز آخر إذا كان ذلك قد يساعد:

لقد ألقيت نظرة على الكود ويبدو أنه هناك نوع من الكتابة فوق يمنع علامات Javascript المصورة في المنشور السابق من أن يتم دمجها:

image

لست متأكدًا بنسبة 100٪ مما إذا كان هذا نتيجة تبديل قيمة نوع النص البرمجي من text/javascript إلى text/discourse-plugin؛ لدي شعور بأنه لم يكن يعمل مع القيمة الأصلية، ولم يعد هناك مؤشر إلى DOI الخاص بـ JS مشار إليه في كود المكون.

شكرًا لدعمك في هذا الأمر - أتساءل عما إذا كان سيكون من الأسهل محاولة تكوين واجهة برمجة التطبيقات الكاملة إذا كانت هناك المزيد من المشاكل في تشغيل الروابط الفردية.