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



visibility  
mode_comment   ۰

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

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

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

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

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

پس راه حل چیه؟

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

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

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

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

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

comment دیدگاه کاربران

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.