فتح الروابط الداخلية في نفس علامة تبويب المتصفح

كثير منا يضع نظام المناقشة (Discourse) في نطاق فرعي، كما يمتلك موقعًا في الجذر، مثل meta.discourse.org و discourse.org. ومع ذلك، عندما تكون الإعدادات العامة لـ “افتح الروابط الخارجية في علامة تبويب جديدة افتراضيًا” مضبوطة على “افتح الروابط الخارجية في علامة تبويب جديدة افتراضيًا”، فإنها تفترض أن جميع الروابط غير الخاصة بالمنتدى خارجية. هل توجد طريقة لإضافة نطاقات بحيث تفتح في نفس علامة التبويب؟ (إذا لم يكن الأمر كذلك، هل يمكن إضافة هذا الخيار من فضلك؟)

هناك إعداد لـ “المضيفين الداخليين المسموح بهم”، مع الوصف: “قائمة بالمضيفين الداخليين التي يمكن لنظام المناقشة (Discourse) زيارتها بأمان لأغراض مثل العرض المدمج (oneboxing) وغيرها”. ربما يمكن ببساطة استخدام هذا الإعداد، بحيث تؤدي إضافة النطاقات هنا إلى فتحها في نفس علامة التبويب؟

إعجاب واحد (1)

يبدو أن هذا احتياج محدد جدًا، لذا فإن أفضل حل هو تنفيذه عبر قالب أو إضافة.

إعجابَين (2)

أود أن أفعل ذلك في كل مثيل لـ Discourse أديره، يا رفائيل. لا أستطيع أن أرى سببًا لعدم رغبة أي شخص في ذلك؛ فإذا كان الموقع يحمل نفس النطاق الداخلي أو النطاق الرئيسي، فمن المرجح أنك تريد أن يفتح الرابط في نفس النافذة. أتساءل عما إذا كان من الجيد طرح استطلاع رأي حول أمور كهذه لمعرفة ما يفضلونه مستخدمو Discourse. أعتقد أنك قد تفاجأ بالنتائج :blush:

ما هي أفضل طريقة للقيام بذلك يا رافائيل؟

لقد جربت استخدام:

<script type="text/discourse-plugin" version="0.8.42">
	api.decorateCookedElement(
	  element => {
	    const tags = element.querySelectorAll('.hashtag');

	    tags.forEach(function(tag) {
				if (tag.hasAttribute('href')) {
					if (tag.href.includes("site.com/tag/")) {
						tag.href = tag.href.replace("site.com/tag/", "newsite.com/")
						tag.setAttribute("target", "_self");
					}
				}
	    });
    },
	  {
	    onlyStream: true
	  }
	);
</script>

وعلى الرغم من أن:

tag.setAttribute("target", "_self");

تقوم بتعيين السمة، إلا أنها لا تؤثر على شيء، حيث تفتح الروابط في علامة تبويب جديدة كما هو معتاد.

أعتقد أنني بحاجة لاستخدام شيء آخر غير api.decorateCookedElement؟