اضبطه بشكل صحيح:
لكن الروابط الخارجية تفتح في نفس علامة التبويب.
هل هذا خطأ برمجي؟
هل تقوم بتجاوزها بتفضيلاتك الشخصية؟
للتوضيح، هذا موجود تحت التفضيلات > الواجهة > فتح جميع الروابط الخارجية في علامة تبويب جديدة
.
إذا قمت بتغيير تفضيلاتك هنا على ميتا (وأعدت تحميل الموقع)، فهل يعمل كما تتوقع في هذا المنتدى؟
نعم، لقد قمت للتو بتعيينه هنا في تفضيلاتي وفتح رابطًا خارجيًا في علامة تبويب جديدة.
إذًا، لا يبدو أن هذا خطأ في Discourse.
هل هناك شيء مميز في منتدىك؟ هل جربت الوضع الآمن؟ هل هناك إضافة (plugin) قد تسبب هذا؟
لا شيء مميز. مستضاف ذاتيًا على Hostinger Ubuntu. لقد قمت بتعطيل جميع الإضافات أيضًا. سأجرب الوضع الآمن (safemode).
لأي شخص آخر يواجه هذه المشكلة، إليك الحل. ما عليك سوى إنشاء مكوّن سمة (theme component) وإضافة هذا الرمز إلى قسم js:
import { apiInitializer } from "discourse/lib/api";
export default apiInitializer("1.8.0", (api) => {
api.decorateCookedElement(
(element) => {
element.querySelectorAll("a[href^='http']").forEach((link) => {
if (link.hostname !== window.location.hostname) {
link.target = "_blank";
link.rel = "noopener noreferrer";
}
});
},
{ id: "external-links-new-tab" }
);
});