تشغيل جافاسكريبت عند النقر على أي رابط صفحة، ولكن قبل تحميل محتوى الصفحة؟

مرحبًا :wave:

لا توجد حاليًا طريقة في واجهة برمجة التطبيقات للإضافات (Plugin-API) تسمح لك بتشغيل سكريبت قبل انتقال الصفحة، لأن هذا الأمر لم يظهر من قبل حسب ما أتذكر.

مع ذلك، يمكنك الاعتماد على إجراء willTransition() في مسار التطبيق (application route)

يمكنك استخدام شيء مشابه لهذا في السمة (theme) أو المكون (component) الخاص بك

// هذا يُنفذ بعد الانتقال
api.onPageChange((url, title) => {
  console.log("after transition");
});

// هذا يُنفذ مباشرة قبل الانتقال
api.modifyClass("route:application", {
  pluginId: "some-name",
  actions: {
    willTransition() {
      // قم بتشغيل الكود الأساسي أولاً
      this._super(...arguments);
      // ثم قم ببعض المهام
      console.log("before transition");
      // يمكنك أيضًا فعل شيء مثل هذا لمعرفة البيانات المتاحة لديك
      // للعمل معها مثل _router
      console.log(this)
    }
  }
});