আমি জানি এটি একটি সম্পন্ন এবং সাজানো সমাধান হয়েছে, তবে আমি আমার অ্যাপ্লিকেশনটিতে সমস্যাটি সমাধান করার জন্য যা ব্যবহার করছি তা এখানে।
if (!e.target.hasAttribute("target")) {
e.preventDefault();
e.target.setAttribute("target", "_blank");
e.target.click();
return;
}
মূলত এখানে যা চলছে আমি কি লিঙ্কটির target=_blankবৈশিষ্ট্য আছে কিনা তা পরীক্ষা করে চালাচ্ছি । যদি এটি না হয় তবে এটি লিঙ্কটি ট্রিগার করা থেকে বিরত রাখে, এটি একটি নতুন উইন্ডোতে খোলার জন্য সেট আপ করে তারপরে প্রোগ্রাম্যাটিকভাবে এটিতে ক্লিক করে।
আপনি আরও একধাপ এগিয়ে যেতে পারেন এবং এ চেষ্টা করে আসল ক্লিকটি থামিয়ে (এবং আপনার কোডটিকে আরও অনেক বেশি সংক্ষিপ্ত করে তুলতে পারেন):
if (!e.target.hasAttribute("target")) {
e.target.setAttribute("target", "_blank");
}
আপনি যদি কোনও অ্যাট্রিবিউট ক্রস ব্রাউজার যুক্ত করার প্রয়োগটি বিমূর্ত করতে jQuery ব্যবহার করে থাকেন তবে আপনার পরিবর্তে এটি ব্যবহার করা উচিত e.target.setAttribute("target", "_blank"):
jQuery(event.target).attr("target", "_blank")
আপনার সঠিক ব্যবহারের ক্ষেত্রে এটি খাপ খাইয়ে নিতে আপনার প্রয়োজন হতে পারে তবে আমি কীভাবে নিজের চুলকানি চুলকিয়েছি তা এখানে।
আপনার সাথে জগাখিচুবি করার জন্য ক্রিয়াকলাপে এটির একটি ডেমো এখানে ।
(জিসফিলের লিঙ্কটি এই আলোচনায় ফিরে আসে .. নতুন ট্যাব লাগবে না :))
target="_top"একটি নতুন উইন্ডোতে খোলে না -target="_blank"করে।