كيفية حقن المحتوى في `before-script-load`؟

هل يمكنني حقن بعض جافاسكريبت في منطقة before-script-load؟

هل يمكن تحقيق ذلك عبر سمة (theme) أو مكون سمة (theme-component)؟

3 إعجابات

هل يجب تشغيله في ذلك المكان بالضبط (ترتيب التنفيذ)؟ سيقوم المتصفح بتحميل جميع نصوص علامة الرأس هذه بغض النظر عن ترتيبها. يمكنك إضافة النص في منطقة علامة الرأس عن طريق الانتقال إلى قسم تحرير CSS/HTML الخاص بالمظهر في admin-customize-themes. إذا كان مظهرك مستضافًا ولا يسمح بالتخصيص، يمكنك إضافته باستخدام مكون مظهر (أو إلى ملف علامة الرأس في المستودع إذا كان مظهرك الخاص).

إعجابَين (2)

هذه صفحة تطوير لا تُستخدم في بيئة الإنتاج.

بالنسبة للصفحات الفعلية في Discourse، يمكن للسمات حقن المحتوى في العنصر الرأسي (head) بشكل جيد، ولكن دون الكثير من التحكم في المكان الدقيق الذي يحدث فيه ذلك، ولكن كما قال @Lilly، لا ينبغي أن يكون هذا مشكلة.

إذا كان بإمكانك إخبارنا بمزيد من التفاصيل حول ما تريد تحقيقه بالضبط، فقد نقدم بعض الاقتراحات.

إعجابَين (2)

أعتقد أنك تريد وضعه في مُهيئ.

ألقِ نظرة على Split up theme Javascript into multiple files

لكن فالكو يعرف الكثير عن ذلك أكثر مني.

إعجابَين (2)

شكراً لك @Lilly و @Falco و @pfaffman.

أعتقد أن هذه هي مشكلتي الرئيسية.

على سبيل المثال، أحتاج إلى التأكد من أن كائن dataLayer الذي أقوم بتعيينه يتم إضافته دائمًا إلى الصفحة قبل أي نص برمجي آخر، إن أمكن. خاصة قبل تحميل GTM (سواء عبر المدمج، أو مُحمِّل مخصص).

على جهاز التطوير المحلي الخاص بي، حاولت استخدام initializes و pre-initializers وقالب head_tag.html؛
وداخل قالب head_tag.html، حاولت تغليف الكود الخاص بي بعلامات <script></script> و <script type="text/discourse-plugin" version="0.1"></script>.

مع كل منها، يمكنني رؤية ترتيب التهيئة بالنسبة لبعضها البعض. ولكن بخلاف ذلك، لا يبدو أن لدي تحكم في ترتيب تحميل النصوص البرمجية.

3 إعجابات