مرحباً kynic،
قد يكون onPageChange واسعًا جدًا للاستخدام (وغير موثوق به إذا قمت بتحميل/تحديث المشاركات).
يمكنك استخدام decorateCookedElement بدلاً من ذلك. يتم استدعاؤه لكل عنصر تم طهيه بعد المشاركة.
بالإضافة إلى ذلك، إليك طريقة لتعطيل مؤشر البريد الإلكتروني. إنها مجرد خدعة لعدم تضمين HTML. إذا كنت فضوليًا، يمكنك رؤية الكود الأصلي هنا.
<script type="text/discourse-plugin" version="0.8">
api.reopenWidget("post-meta-data", {
html(attrs) {
if (!attrs.via_email) {
return this._super(attrs);
}
// لا تقم بإنشاء عنصر واجهة المستخدم "post-email-indicator".
attrs.via_email = false;
const html = this._super(attrs);
attrs.via_email = true;
return html;
}
})
api.decorateCookedElement((element, helper) => {
if (helper?.getModel().via_email) {
element.querySelector('details.elided').remove();
}
}, { onlyStream: true });
</script>
يمكنك أيضًا استخدام CSS فقط لإخفاء هذه العناصر.
.post-info.via-email,
.cooked details.elided {
display: none;
}