باز کردن URL مورد نظر در تب جدید با استفاده از Javascript

دسته بندی: آموزش
زمان مطالعه: 2 دقیقه
۱۷ تیر ۱۳۹۷

باز کردن URL مورد نظر در تب جدید با استفاده از Javascript

بعضی مواقع احتیاج دارید که به کمک Javascript یک URL رو در تب جدید باز کنید. در این مطلب با مشکلات این زمینه آشنا میشیم و یاد میگیریم که چطور کارهای مورد نظرمون رو انجام بدیم.

یکی از ساده‌ترین و متداول‌ترین روش هایی که ممکنه بهتون پیشنهاد بشه استفاده از دو کد زیر هست:

window.open(url,'_blank');
// یا
window.open(url);

اما اگر این دو کد رو اجرا کنید متوجه می‌شید که مرورگر با اون URL مانند یک popup window برخورد می‌کنه و به طور پیش فرض اجازه باز شدن اون tab رو نمیده. حتما با این مورد مواجه شدید. مثلا وارد سایتی میشید و اون سایت بدون اینکه شما کاری انجام بدین و بدون اینکه از شما اجازه بگیره، تعداد زیادی پنجره و آدرسهایی که مورد نظر خودش هست رو باز میکنه. اخیرا مرورگرها با این مورد برخورد میکنن و جلوی اونا رو میگیرن و بهشون Popup Blocker میگن.

در کد بالا هم چون ما مستقیم و بدون اجازه کاربر داریم از window.open استفاده میکنیم پس مرورگر هم فکر میکنه که popup هست و به همین حاطر با اون برخورد میکنه.

پس راه حل چیه؟

ترفندی وجود داره که شما می‌تونید به کمک تعریف یک function به هدف دلخواهتون برسید. به کد زیر توجه کنید:

function openInNewTab(url) {
  var win = window.open(url, '_blank');
  win.focus();
}

همونطور که میبینید یک تابع تعریف کردیم و یک url رو به اون پاس میدیم و اون url در تب جدید باز میشه و focus بر روی اون قرار میگیره.

شما می‌تونید کدتون رو طوری تعریف کنید که به ازای رخداد یک رویداد خاص مانند کلیک، دبل کلیک، لمس کردن صفحه در دستگاه‌های لمسی و ...، URL مورد نظردر یک tab جدید باز بشه و مرورگر دیگه اون لینک رو به عنوان یک popup window نمیشناسه.

پس اگر زمانی که خود کاربر کاری رو انجام میده (مانند کلیک کردن)، از window.open استفاده کنیم، مرورگر دیگه به اون گیر نمیده و url رو باز میکنه. بخاطر همینه که در سایتهای تبلیغاتی زمانی که در جاهای مختلف کلیک میکنید، پنجره‌های مختلفی باز میشه و مرورگر هم با اونا برخورد نمیکنه.

اگر شما هم روشی برای انجام اینکار به ذهنتون میرسه خوشحال میشیم که در بخش نظرات با ما در میان بذارید.

چه امتیازی به این مقاله می دید؟
نویسنده محمد اسفندیاری
بسیار به طراحی وب علاقمندم و به سرعت در حال یادگیری تمام مباحث پیشرفته هستم و دوست دارم که به دیگران هم یاد بدهم.

نظرات کاربران

ناصر عبدی

نمونه کد رو هم میفرستم

<!–Begin: Star-Clicks.com HTML Code–><script type=’text/javascript’ src=’http://www.star-clicks.com/secure/ads.php?pid=48286073650335081′></script><!– End: Star-Clicks.com –>
ناصر عبدی

میشه از این روش برای کد تبلیغاتی متغییر هم استفاده بکنیم اگه بلد هستید حاظر هستم مبلغی هم پرداخت کنم
من میخوام کدی داشته باشم که از بین لینک تبلیغاتی که در سایت میاد و با هر رفرش تغییر میکنه بطور اتومات بره به اون صفحه در پنجره جداگانه و بدون ازیت بازدید کننده

ارسال دیدگاه
خوشحال میشیم دیدگاه و یا تجربیات خودتون رو با ما در میون بذارید :