আমার কাছে একটি নির্দিষ্ট লিঙ্কের একটি ক্লিক হ্যান্ডলার রয়েছে, এর ভিতরে আমি নীচের মতো কিছু করতে চাই:
window.location = url
নতুন উইন্ডোতে ইউআরএলটি খোলার জন্য আমার এটি দরকার তবে আমি কীভাবে এটি করব?
উত্তর:
আপনি পছন্দ করতে পারেন:
window.open('url', 'window name', 'window settings')
jQuery:
$('a#link_id').click(function(){
window.open('url', 'window name', 'window settings');
return false;
});
আপনি আসলে সেট করতে targetপারে _blank।
ক্লিক হ্যান্ডলারের ভিতরে কীভাবে লক্ষ্যটি জোর করা যায় তা এখানে:
$('a#link_id').click(function() {
$(this).attr('target', '_blank');
});
$(this).attr('target', '_blank'); পরিবর্তিত হতে পারে this.target = "_blank";, এছাড়াও যদি পৃষ্ঠাতে নোঙ্গর লিঙ্ক আছে পরিবর্তন করা যাবে rel="external"বৈশিষ্ট্যাবলী তারপর আপনি jQuery নির্বাচক সঙ্গে পৃষ্ঠার জন্য একটি বিশ্বব্যাপী ক্লিক হ্যান্ডলার তৈরী করতে পারে a[rel="external"]বরং একটি থাকার চেয়ে লিংক ক্লিক প্রতি হ্যান্ডলার সঙ্গে নির্বাচিতa#link_id
আপনি ব্যবহার করতে হবে window.open(url);
তথ্যসূত্র:
http://www.htmlcodetutorial.com/link/linking_famsupp_120.html
http://www.w3schools.com/jsref/met_win_open.asp
আমি এই সমস্যাটির একটি আকর্ষণীয় সমাধান পেয়েছি। আমি এমন একটি স্প্যান তৈরি করছিলাম যা কোনও ওয়েব পরিষেবা থেকে ফেরতের ভিত্তিতে তথ্য ধারণ করে। স্প্যানের চারপাশে একটি লিঙ্ক স্থাপন করার চেষ্টা করার কথা ভেবেছিলাম যাতে আমি এটিতে ক্লিক করি তবে "এ" ক্লিকটি ক্যাপচার করতে পারে।
তবে আমি স্প্যানটির সাথে ক্লিকটি ক্যাপচার করার চেষ্টা করছিলাম ... তাই আমি ভেবেছিলাম যে আমি স্প্যানটি তৈরি করার সময় কেন এটি করব না।
var span = $('<span id="something" data-href="'+url+'" />');
তারপরে আমি স্প্যানটিতে একটি ক্লিক হ্যান্ডলারকে আবদ্ধ করলাম যা 'ডেটা-হ্রেফ' বৈশিষ্ট্যের উপর ভিত্তি করে একটি লিঙ্ক তৈরি করেছিল:
span.click(function(e) {
e.stopPropagation();
var href = $(this).attr('data-href');
var link = $('<a href="http://' + href + '" />');
link.attr('target', '_blank');
window.open(link.attr('href'));
});
এটি সফলভাবে আমাকে স্প্যানটিতে ক্লিক করতে এবং সঠিক url সহ একটি নতুন উইন্ডো খোলার অনুমতি দিয়েছে।
এর সাথে কী হয়েছে <a href="myurl.html" target="_blank">My Link</a>? কোনও জাভাস্ক্রিপ্টের প্রয়োজন নেই ...
এই সমাধানটি ইউআরএল খালি এবং অক্ষর (ধূসর) খালি লিঙ্কটি কেস হিসাবে বিবেচনা করেছে।
$(function() {
changeAnchor();
});
function changeAnchor() {
$("a[name$='aWebsiteUrl']").each(function() { // you can write your selector here
$(this).css("background", "none");
$(this).css("font-weight", "normal");
var url = $(this).attr('href').trim();
if (url == " " || url == "") { //disable empty link
$(this).attr("class", "disabled");
$(this).attr("href", "javascript:void(0)");
} else {
$(this).attr("target", "_blank");// HERE set the non-empty links, open in new window
}
});
}
a.disabled {
text-decoration: none;
pointer-events: none;
cursor: default;
color: grey;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<a name="aWebsiteUrl" href="http://www.baidu.com" class='#'>[website]</a>
<a name="aWebsiteUrl" href=" " class='#'>[website]</a>
<a name="aWebsiteUrl" href="http://www.alibaba.com" class='#'>[website]</a>
<a name="aWebsiteUrl" href="http://www.qq.com" class='#'>[website]</a>
আপনি যদি ক্লিক ইভেন্টের ইভেন্ট হ্যান্ডলার ফাংশনের অভ্যন্তরে AJAX অনুরোধগুলি কার্যকর করতে চান তবে সচেতন হন । কোনও কারণে ক্রোম (এবং সম্ভবত অন্যান্য ব্রাউজারগুলি) কোনও নতুন ট্যাব / উইন্ডো খুলবে না।
এটি খুব সুন্দর সমাধান নয় তবে এটি কাজ করে:
সিএসএস:
.new-tab-opener
{
display: none;
}
এইচটিএমএল:
<a data-href="http://www.google.com/" href="javascript:">Click here</a>
<form class="new-tab-opener" method="get" target="_blank"></form>
জাভাস্ক্রিপ্ট:
$('a').on('click', function (e) {
var f = $('.new-tab-opener');
f.attr('action', $(this).attr('data-href'));
f.submit();
});
সরাসরি উদাহরণ: http://jsfiddle.net/7eRLb/
মাইক্রোসফ্ট আইই দ্বিতীয় নাম হিসাবে কোনও নাম সমর্থন করে না।
window.open('url', 'window name', 'window settings');
সমস্যা হচ্ছে window name। এটি কাজ করবে:
window.open('url', '', 'window settings')
মাইক্রোসফ্ট কেবল নিম্নলিখিত যুক্তিগুলি মঞ্জুরি দেয়, যদি সেই যুক্তিটি একেবারে ব্যবহার করা হয়: