أرغب في إضافة رابط في وصف بعض العلامات الخاصة بي على النحو التالي:
<a href="https://store.sgiant.me" target="_blank">انقر هنا</a> لزيارة متجر Sir Giant الرسمي.
عندما أحفظه لأول مرة، فإنه يعمل ويفتح في نافذة جديدة.
عندما أقوم بتحديث الصفحة، فإنه لا يعمل بعد الآن وعندما أتحقق من الكود، يصبح:
<a href="https://store.sgiant.me">انقر هنا</a> لزيارة متجر Sir Giant الرسمي.
لقد قمت بالفعل بتعيين خيار فتح الروابط الخارجية في علامة تبويب جديدة على “نعم”، ولكن يبدو أن هذا لا يؤثر على هذه الحالة المحددة حيث أقوم بإضافة كود HTML.
اقترح ChatGPT إنشاء مكون مع علامة تبويب JS تحتوي على:
import { apiInitializer } from "discourse/lib/api";
export default apiInitializer((api) => {
function processTagLinks() {
document.querySelectorAll('.tag-title-contents a[href^="http"]').forEach(link => {
if (!link.href.includes(window.location.hostname) && !link.hasAttribute('data-processed')) {
link.setAttribute('target', '_blank');
link.setAttribute('rel', 'noopener noreferrer');
link.setAttribute('data-processed', 'true');
}
});
}
// Process immediately
processTagLinks();
// Watch for DOM changes
const observer = new MutationObserver(() => {
processTagLinks();
});
observer.observe(document.body, {
childList: true,
subtree: true
});
// Also run on page changes
api.onPageChange(() => {
setTimeout(processTagLinks, 100);
});
});
لكنني لست مطورًا ولا أعرف ما إذا كان هذا حلاً جيدًا أم لا؟
