উত্তর:
অন্যরা যেমন উল্লেখ করেছে, মাউসের ডান বোতামটি সাধারণ মাউস ইভেন্টগুলির মাধ্যমে সনাক্ত করা যায় (মাউসডাউন, মাউসআপ, ক্লিক) । তবে, ডান ক্লিকের মেনুটি আনার সময় আপনি যদি কোনও ফায়ারিং ইভেন্টের সন্ধান করছেন, আপনি ভুল জায়গায় সন্ধান করছেন। ডান-ক্লিক / প্রসঙ্গ মেনু কীবোর্ডের মাধ্যমে (shift + F10 বা উইন্ডোজ এবং কিছু লিনাক্সের প্রসঙ্গ মেনু কী) এর মাধ্যমেও অ্যাক্সেসযোগ্য। এই পরিস্থিতিতে, আপনি যে ইভেন্টটির সন্ধান করছেন তা হ'ল oncontextmenu:
window.oncontextmenu = function ()
{
showCustomMenu();
return false; // cancel default menu
}
মাউসের ইভেন্টগুলি নিজেরাই, ব্রাউজারগুলি ইভেন্ট হ্যান্ডলিংয়ের ফাংশন থেকে অ্যাক্সেসযোগ্য ইভেন্ট অবজেক্টে একটি সম্পত্তি সেট করে:
document.body.onclick = function (e) {
var isRightMB;
e = e || window.event;
if ("which" in e) // Gecko (Firefox), WebKit (Safari/Chrome) & Opera
isRightMB = e.which == 3;
else if ("button" in e) // IE, Opera
isRightMB = e.button == 2;
alert("Right mouse button " + (isRightMB ? "" : " was not") + "clicked!");
}
(isRightMB?"was not" : "")হওয়া উচিত (isRightMB?"was" : "was not")। ঠিক? দয়া করে এটি পর্যালোচনা করতে সহায়তা করুন।
onmousedownএবং onmouseupতা নয় onclick। স্পষ্টতই, ক্রোমে, onclickকেবলমাত্র বাম-মাউস-বোতামের জন্য ট্রিগার করা হয়। (এবং হ্যাঁ ছেলেরা, আমি এটি একাধিকবার পরীক্ষা করেছি) ডান-মাউস-ক্লিক সনাক্ত করার জন্য আপনাকে হয় একত্রিত করতে হবে onmousedownএবং onmouseup, অথবা ব্যবহার করতে হবে oncontextmenu।
নিম্নলিখিত jQuery কোডটি দেখুন:
$("#myId").mousedown(function(ev){
if(ev.which == 3)
{
alert("Right mouse button clicked on element with id myId");
}
});
এর মান whichহবে:
.whichনয় .button? ওও .button=> 0,1,2 ; which=> 1,2,3 । এটা ঠিক ভুল।
আপনি ইভেন্টটি ব্যবহার করতে পারেন window.oncontextmenu, উদাহরণস্বরূপ:
window.oncontextmenu = function () {
alert('Right Click')
}
<h1>Please Right Click here!</h1>
window.oncontextmenu = function () { e.preventDefault() }কাজ হয়নি।
তবে, যদিও ডাব্লু 3 সি বলেছেন যে ক্লিক ইভেন্টের মাধ্যমে ডান ক্লিকটি সনাক্ত করা যায়, অনক্লিকটি সাধারণ ব্রাউজারগুলিতে ডান ক্লিকের মাধ্যমে ট্রিগার হয় না।
আসলে, মাউসডাউন অনমাউসআপ এবং অনকন্টেক্সটমেনুতে কেবল ক্লিক করুন ট্রিগার।
সুতরাং, আপনি "onContextMenu" রাইট ক্লিক ইভেন্ট হিসাবে বিবেচনা করতে পারেন। এটি একটি HTML5.0 মান।
আপনি যদি মাউসের ডান ক্লিকটি সনাক্ত করতে চান তবে আপনার MouseEvent.whichসম্পত্তিটি ব্যবহার করা উচিত নয় কারণ এটি মান -হীন এবং ব্রাউজারগুলির মধ্যে বিশাল অসঙ্গতি রয়েছে। ( MDN দেখুন ) আপনার পরিবর্তে ব্যবহার করা উচিত MouseEvent.button। এটি প্রদত্ত বোতামটি উপস্থাপন করে এমন একটি নম্বর প্রদান করে:
0: প্রধান বোতাম টিপিত হয়, সাধারণত বাম বাটন বা আন-আরম্ভের অবস্থা1: সহায়ক বোতাম টিপে রাখা হয়, সাধারণত হুইল বোতাম বা মাঝের বোতামটি (উপস্থিত থাকলে)2: সেকেন্ডারি বোতাম টিপে, সাধারণত ডান বোতাম3: চতুর্থ বোতাম, সাধারণত ব্রাউজার ব্যাক বোতাম4: পঞ্চম বাটন, সাধারণত ব্রাউজার ফরোয়ার্ড বোতামMouseEvent.button কেবলমাত্র স্ট্যান্ডার্ড মাউসের চেয়ে আরও বেশি ইনপুট প্রকারগুলি পরিচালনা করে:
বোতামগুলি স্ট্যান্ডার্ড "বাম থেকে ডান" লেআউটে আলাদাভাবে কনফিগার করা যেতে পারে। বাম-হাতের ব্যবহারের জন্য কনফিগার করা মাউসের বোতামের ক্রিয়াগুলি বিপরীত হতে পারে। কিছু নির্দেশকারী ডিভাইসে কেবল একটি বোতাম থাকে এবং মূল, মাধ্যমিক, সহায়িকা ইত্যাদি নির্দেশ করতে কীবোর্ড বা অন্যান্য ইনপুট প্রক্রিয়া ব্যবহার করে অন্যদের বিভিন্ন ফাংশন এবং বোতামের মানগুলিতে ম্যাপযুক্ত অনেকগুলি বোতাম থাকতে পারে।
রেফারেন্স:
না, তবে আপনি "অনমাউসডাউন" ইভেন্টে মাউস বোতামটি কী ব্যবহার করেছেন তা সনাক্ত করতে পারেন ... এবং সেখান থেকে নির্ধারণ করুন যে এটি "রাইট ক্লিক" ছিল কিনা।
onmousedown, onmouseupএবং onclick। আপনি যদি ডান ক্লিকের মেনুটিকে ওভাররাইড করে দেখছেন তবে এই ইভেন্টগুলি আপনার ব্যবহার করা উচিত নয় (নীচে আমার উত্তর দেখুন)।
নিম্নলিখিত কোডটি jQuery ব্যবহার rightclickকরে ডিফল্ট mousedownএবং mouseupইভেন্টের উপর ভিত্তি করে একটি কাস্টম ইভেন্ট তৈরি করে । এটি নিম্নলিখিত বিষয়গুলি বিবেচনা করে:
contextmenuইভেন্টটি সেখানে ট্রিগার করা হয়নি)on('contextmenu', ...)না$(function ()
{ // global rightclick handler - trigger custom event "rightclick"
var mouseDownElements = [];
$(document).on('mousedown', '*', function(event)
{
if (event.which == 3)
{
mouseDownElements.push(this);
}
});
$(document).on('mouseup', '*', function(event)
{
if (event.which == 3 && mouseDownElements.indexOf(this) >= 0)
{
$(this).trigger('rightclick');
}
});
$(document).on('mouseup', function()
{
mouseDownElements.length = 0;
});
// disable contextmenu
$(document).on('contextmenu', function(event)
{
event.preventDefault();
});
});
// Usage:
$('#testButton').on('rightclick', function(event)
{
alert('this was a rightclick');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<button id="testButton">Rightclick me</button>
হ্যাঁ - এটা!
function doSomething(e) {
var rightclick;
if (!e) var e = window.event;
if (e.which) rightclick = (e.which == 3);
else if (e.button) rightclick = (e.button == 2);
alert('Rightclick: ' + rightclick); // true or false
}
elem.addEventListener("click", doSomething)
হ্যাঁ, অনকন্টেক্সটেমেনু সম্ভবত সেরা বিকল্প তবে সচেতন থাকবেন যে এটি মাউসের নিচে ট্রিগার করে যেখানে ক্লিকের ফলে মাউস আপ ট্রিগার হবে।
অন্যান্য সম্পর্কিত প্রশ্নগুলি ডাবল রাইট ক্লিক সম্পর্কে জিজ্ঞাসা করেছিল - যা ম্যানুয়াল টাইমার চেকিংয়ের বাইরে দৃশ্যত সমর্থিত নয়। ডান ডাবল ক্লিক করতে সক্ষম হবার একটি কারণ হ'ল যদি আপনার বাম-হাতের মাউস ইনপুট (বোতাম বিপরীত) সমর্থন করতে চান। ব্রাউজার বাস্তবায়নগুলি কীভাবে আমাদের উপলভ্য ইনপুট ডিভাইসগুলি ব্যবহার করা উচিত সে সম্পর্কে অনেক অনুমান করে।
ডান ক্লিকটি সম্পন্ন করার সহজ উপায়টি হ'ল ব্যবহার
$('classx').on('contextmenu', function (event) {
});
তবে এটি ক্রস ব্রাউজার সমাধান নয়, ব্রাউজারগুলি এই ইভেন্টের জন্য বিশেষত ফায়ারফক্স এবং আইই এর জন্য আলাদা আচরণ করে। আমি ক্রস ব্রাউজার সমাধানের জন্য নীচে সুপারিশ করব
$('classx').on('mousedown', function (event) {
var keycode = ( event.keyCode ? event.keyCode : event.which );
if (keycode === 3) {
//your right click code goes here
}
});
এটি আগুন দেওয়ার সবচেয়ে সহজ উপায় এবং এটি অ্যাপ্লিকেশন ওয়েব ভিউ যেমন (সেফশার্প ক্রোমিয়াম ইত্যাদি ...) বাদে সমস্ত ব্রাউজারগুলিতে কাজ করে। আমি আশা করি আমার কোড আপনাকে সাহায্য করবে এবং সৌভাগ্য!
const contentToRightClick=document.querySelector("div#contentToRightClick");
//const contentToRightClick=window; //If you want to add it into the whole document
contentToRightClick.oncontextmenu=function(e){
e=(e||window.event);
e.preventDefault();
console.log(e);
return false; //Remove it if you want to keep the default contextmenu
}
div#contentToRightClick{
background-color: #eee;
border: 1px solid rgba(0,0,0,.2);
overflow: hidden;
padding: 20px;
height: 150px;
}
<div id="contentToRightClick">Right click on the box !</div>
window.oncontextmenu = function (e) {
e.preventDefault()
alert('Right Click')
}
<h1>Please Right Click here!</h1>
ডান ক্লিক ইভেন্টের সময় আপনি যদি ফাংশনটি কল করতে চান তবে আমরা নিম্নলিখিতটি ব্যবহার করতে পারি
<html lang="en" oncontextmenu="func(); return false;">
</html>
<script>
function func(){
alert("Yes");
}
</script>
whichএবং / অথবা buttonসম্পত্তি ব্যবহার করার চেষ্টা করুন
function onClick(e) {
if (e.which === 1 || e.button === 0) {
console.log('Left mouse button at ' + e.clientX + 'x' + e.clientY);
}
if (e.which === 2 || e.button === 1) {
console.log('Middle mouse button ' + e.clientX + 'x' + e.clientY);
}
if (e.which === 3 || e.button === 2) {
console.log('Right mouse button ' + e.clientX + 'x' + e.clientY);
}
if (e.which === 4 || e.button === 3) {
console.log('Backward mouse button ' + e.clientX + 'x' + e.clientY);
}
if (e.which === 5 || e.button === 4) {
console.log('Forward mouse button ' + e.clientX + 'x' + e.clientY);
}
}
window.addEventListener("mousedown", onClick);
কিছু তথ্য এখানে

মাউস থেকে ডান ক্লিক হ্যান্ডেল করতে, আপনি 'অনকন্টেক্সটেমেনু' ইভেন্টটি ব্যবহার করতে পারেন। নীচে একটি উদাহরণ দেওয়া হল:
document.body.oncontextmenu=function(event) {
alert(" Right click! ");
};
ডান ক্লিক টিপলে উপরের কোডটি কিছু পাঠ্যকে সতর্ক করে। আপনি যদি ব্রাউজারটির ডিফল্ট মেনুটি না হাজির করতে চান তবে আপনি মিথ্যা রিটার্ন যুক্ত করতে পারেন; ফাংশনের সামগ্রীর শেষে। ধন্যবাদ।
হ্যাঁ, এটি একটি জাভাস্ক্রিপ্ট মোডডাউন ইভেন্ট। এটি করার জন্য একটি জিকুয়েরি প্লাগইন রয়েছে