باز کردن لینک دامنه‌های مشخص در تب جدید (XenForo)

🌙
شب بخیر!

برای ارسال پیام، چت خصوصی، یا دانلود فایل‌ها، کافیه ثبت‌نام کنی.

📝 ثبت‌نام کن و شروع کن

Sina

Administrator
پرسنل مدیریت
2013-05-11
4,767
2,907
113
چابکســـر، سرزمین پارس
گاهی اوقات لازم است فقط لینک‌های مربوط به چند دامنه مشخص در تب جدید مرورگر باز شوند، در حالی که سایر لینک‌ها مانند حالت عادی در همان تب باز شوند.

این روش برای مواردی مانند زیر بسیار کاربردی است:

  • سرور دانلود روی یک دامنه مجزا
  • لینک کوتاه‌کننده
  • ابزارهای اختصاصی مانند رزومه‌ساز
  • هر سرویس دیگری که متعلق به انجمن یا وب‌سایت شما باشد
اسکریپت زیر فقط برای دامنه‌هایی که خودتان مشخص می‌کنید، به‌صورت خودکار target="_blank" را اضافه می‌کند.

کد JavaScript
JavaScript:
<script>
    document.addEventListener("DOMContentLoaded", function() {
// Add the domains that should open in a new tab
const externalDomains = [     
"example.com",     
"downloads.example.com",     
"tools.example.com",   
 "go.example.com" 
];
document.querySelectorAll('a[href^="http"]').forEach(link => {     
try {         
const linkHost = new URL(link.href).hostname.replace('www.', '');         

if (externalDomains.includes(linkHost)) {             
link.setAttribute('target', '_blank');             
link.setAttribute('rel', 'noopener noreferrer');         
}   
 } catch (e) {       
 // Ignore invalid URLs     
}
});
});
</script>

نحوه عملکرد​

  • تمام لینک‌های HTTP و HTTPS صفحه بررسی می‌شوند.
  • دامنه هر لینک با لیست دامنه‌های مشخص‌شده مقایسه می‌شود.
  • در صورت تطابق، لینک در یک تب جدید باز خواهد شد.
  • سایر لینک‌ها بدون هیچ تغییری رفتار پیش‌فرض خود را حفظ می‌کنند.

شخصی‌سازی​

فقط کافی است آرایه externalDomains را با دامنه‌های موردنظر خود ویرایش کنید:

JavaScript:
const externalDomains = [
"example.com",
"downloads.example.com",
"tools.example.com",
"another-domain.com"
];

نحوه نصب​

کد را در بخشی از XenForo قرار دهید که JavaScript در تمام صفحات بارگذاری می‌شود؛ مانند Footer Template یا هر Template سراسری دیگری که برای اجرای کدهای JavaScript استفاده می‌کنید.

نکات​

  • نیازی به CSS نیست.
  • نیازی به نصب افزونه یا تغییرات اضافی در XenForo نیست.
  • برای افزایش امنیت، از rel="noopener noreferrer" استفاده شده است.
  • اگر از چند زیردامنه (Subdomain) استفاده می‌کنید، باید هر کدام را به‌صورت جداگانه در آرایه externalDomains اضافه کنید.
 

درباره ما

  • انجمن یه‌حس‌خوب در اردیبهشت سال 1392 با هدف ایجاد یک شبکه اجتماعی شامل موضوعات سرگرمی، علمی، دانشگاهی، فناوری و ... شروع بکار کرد و بیش از یک دهه آنلاین است. این مجموعه کاربرمحور بوده و اعضای آن در طول این سال‌ها تجارب خود را برای شما بازدیدکنندگان عزیز به اشتراک گذاشتند. این مجموعه دارای نظارت 24 ساعته بوده تا محیطی سالم را برای کاربران خود فراهم آورد، از کاربران انتظار می رود که با رعایت قوانین ما را برای رسیدن به این هدف یاری نمایند.

منوی کاربر