উত্তর:
$(window).keypress(function(event) {
if (!(event.which == 115 && event.ctrlKey) && !(event.which == 19)) return true;
alert("Ctrl-S pressed");
event.preventDefault();
return false;
});
কী কোডগুলি ব্রাউজারগুলির মধ্যে পৃথক হতে পারে, সুতরাং আপনার কেবল 115 টিরও বেশি পরীক্ষা করার প্রয়োজন হতে পারে।
keydownপরিবর্তে ব্যবহার করুনkeypress
এটি আমার Ctrl+1 S, Ctrl+ Fএবং Ctrl+ ওভারলোডের জন্য (jquery ব্যবহার করে) কাজ করে G:
$(window).bind('keydown', function(event) {
if (event.ctrlKey || event.metaKey) {
switch (String.fromCharCode(event.which).toLowerCase()) {
case 's':
event.preventDefault();
alert('ctrl-s');
break;
case 'f':
event.preventDefault();
alert('ctrl-f');
break;
case 'g':
event.preventDefault();
alert('ctrl-g');
break;
}
}
});
else ifহবে না কারণ মূল ifবক্তব্যটি ইতিমধ্যে সত্য হিসাবে মূল্যায়ন করা হবে। আসল ifস্টেটমেন্টের আগে আপনাকে আপনার কোডটি রাখতে হবে , আসলটিকে একটি তে পরিণত করতে হবে else if।
আপনি ব্রাউজারের নির্দিষ্ট জিনিসগুলি পরিচালনা করতে একটি শর্টকাট লাইব্রেরি ব্যবহার করতে পারেন ।
shortcut.add("Ctrl+S",function() {
alert("Hi there!");
});
এই jQuery সমাধানটি আমার জন্য ক্রোম এবং ফায়ারফক্সে, Ctrl+ Sএবং Cmd+ উভয়ের জন্যই কাজ করে S।
$(document).keydown(function(e) {
var key = undefined;
var possible = [ e.key, e.keyIdentifier, e.keyCode, e.which ];
while (key === undefined && possible.length > 0)
{
key = possible.pop();
}
if (key && (key == '115' || key == '83' ) && (e.ctrlKey || e.metaKey) && !(e.altKey))
{
e.preventDefault();
alert("Ctrl-s pressed");
return false;
}
return true;
});
e.keyপরিবর্তে ব্যবহার করুন e.which;
এই একজন আমার জন্য ক্রোমে কাজ করেছে ... কোনও কারণে আমার জন্য event.whichএকটি মূলধন এস (83) ফিরিয়ে দেয়, নিশ্চিত না কেন (ক্যাপস লক অবস্থা নির্বিশেষে) তাই আমি ব্যবহার করেছি fromCharCodeএবং toLowerCaseকেবল নিরাপদ দিকে থাকতে পারি
$(document).keydown(function(event) {
//19 for Mac Command+S
if (!( String.fromCharCode(event.which).toLowerCase() == 's' && event.ctrlKey) && !(event.which == 19)) return true;
alert("Ctrl-s pressed");
event.preventDefault();
return false;
});
কেউ যদি জানে কেন আমি পেতে 83 এবং 115 , আমি শুনেছি খুশি হবে, এছাড়াও কেউ যদি অন্যান্য ব্রাউজার এই পরীক্ষা আমি এটি কাজ করে বা না শুনে খুশি হবেন
আমি ফায়ারফক্স, আইই এবং ক্রোম সমর্থন করার জন্য কয়েকটি অপশন একত্রিত করেছি। আমি আরও ভাল ম্যাক সমর্থন করার জন্য এটি আপডেট করেছি
// simply disables save event for chrome
$(window).keypress(function (event) {
if (!(event.which == 115 && (navigator.platform.match("Mac") ? event.metaKey : event.ctrlKey)) && !(event.which == 19)) return true;
event.preventDefault();
return false;
});
// used to process the cmd+s and ctrl+s events
$(document).keydown(function (event) {
if (event.which == 83 && (navigator.platform.match("Mac") ? event.metaKey : event.ctrlKey)) {
event.preventDefault();
save(event);
return false;
}
});
আমি চাই ওয়েব অ্যাপ্লিকেশনগুলি সত্যই আমার ডিফল্ট শর্টকাট কীগুলি ওভাররাইড না করে। Ctrl+ Sব্রাউজারগুলিতে ইতিমধ্যে কিছু করে। যে সাইটটি আমি দেখছি তার উপর নির্ভর করে হঠাৎ করেই এই পরিবর্তনটি ব্যাহতকারী এবং হতাশার, প্রায়শই বগীর কথা উল্লেখ না করে। আমি সাইট হাইজ্যাক ছিল Ctrl+ + Tabকারণ এটি হিসাবে একই লাগছিল Ctrl+ + I, উভয় সাইটে আমার কাজ বিনষ্টকারী এবং আমার যথারীতি ট্যাব সুইচিং বাধা।
আপনি যদি শর্টকাট কীগুলি চান তবে accesskeyবৈশিষ্ট্যটি ব্যবহার করুন । অনুগ্রহ করে বিদ্যমান ব্রাউজার কার্যকারিতা ভঙ্গ করবেন না।
@ ইভটি: ব্রাউজারটি আরও সমৃদ্ধ এবং আরও কার্যকর কার্যকারিতার জন্য হোম হয়ে ওঠে এবং ডেস্কটপ অ্যাপ্লিকেশনগুলি প্রতিস্থাপন করতে শুরু করে, এটি কীবোর্ড শর্টকাটগুলির ব্যবহারকে ভুলে যাওয়ার বিকল্প হতে পারে না। আউটলুক পরিত্যাগ করার ইচ্ছার জন্য Gmail এর সমৃদ্ধ এবং কীবোর্ড কমান্ডগুলির স্বজ্ঞাত সেট set টোডোইস্ট, গুগল রিডার এবং গুগল ক্যালেন্ডারে কীবোর্ড শর্টকাটগুলি প্রতিদিনের ভিত্তিতে আমার জীবনকে অনেক অনেক সহজ করে তোলে।
বিকাশকারীদের অবশ্যই ব্রাউজারে ইতিমধ্যে অর্থ রয়েছে এমন কীস্ট্রোকগুলি ওভাররাইড না করা উচিত careful উদাহরণস্বরূপ, WMD পাঠ্যবাক্স আমি অস্বাভাবিক ব্যাখ্যা মধ্যে টাইপ করছি Ctrl+ + Delহিসাবে "ব্লককোট" বদলে "শব্দকে সামনের দিকে মুছুন"। সাইট বিকাশকারীরা যে কোনও "ব্রাউজার-নিরাপদ" শর্টকাট ব্যবহার করতে পারে এবং ব্রাউজারগুলি ভবিষ্যতের সংস্করণগুলি থেকে দূরে থাকার প্রতিশ্রুতিবদ্ধ সে সম্পর্কে যদি কোনও মানক তালিকা থাকে তবে আমি আগ্রহী।
$(document).keydown(function(e) {
if ((e.key == 's' || e.key == 'S' ) && (e.ctrlKey || e.metaKey))
{
e.preventDefault();
alert("Ctrl-s pressed");
return false;
}
return true;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
Try pressing ctrl+s somewhere.
এই @ AlanBellows এর উত্তর, প্রতিস্থাপন একটি আপ-টু-ডেট সংস্করণ whichসঙ্গে key। এছাড়া Chrome এর রাজধানী কী সামান্য ত্রুটি (যেখানে বাটনটি চাপলে এমনকি কাজ করে Ctrl+ + Sএটা মূলধন পাঠায় s এর পরিবর্তে গুলি)। সমস্ত আধুনিক ব্রাউজারে কাজ করে।
এটি ছিল আমার সমাধান, যা এখানে অন্যান্য পরামর্শের চেয়ে পড়া সহজ,
$(window).keydown(function(evt) {
var key = String.fromCharCode(evt.keyCode);
//ctrl+s
if (key.toLowerCase() === "s" && evt.ctrlKey) {
fnToRun();
evt.preventDefault(true);
return false;
}
return true;
});
String.fromCharCode। যদিও, ম্যাকগুলির একটি নিয়ন্ত্রণ কী নেই। কমান্ড কী দিয়ে পরীক্ষা করুন evt.metaKey। এটি trueসিএমডি অন ম্যাক এবং উইন্ডোজ উইনে ফিরবে ।
আমি এই ছোট প্লাগইন পছন্দ । যদিও এটির জন্য আরও কিছুটা ক্রস ব্রাউজার বন্ধুত্ব দরকার।
এটি কাজ করা উচিত ( https://stackoverflow.com/a/8285722/388902 থেকে অভিযোজিত )।
var ctrl_down = false;
var ctrl_key = 17;
var s_key = 83;
$(document).keydown(function(e) {
if (e.keyCode == ctrl_key) ctrl_down = true;
}).keyup(function(e) {
if (e.keyCode == ctrl_key) ctrl_down = false;
});
$(document).keydown(function(e) {
if (ctrl_down && (e.keyCode == s_key)) {
alert('Ctrl-s pressed');
// Your code
return false;
}
});
উদাহরণ:
shortcut.add("Ctrl+c",function() {
alert('Ok...');
}
,{
'type':'keydown',
'propagate':false,
'target':document
});
ব্যবহার
<script type="text/javascript" src="js/shortcut.js"></script>
ডাউনলোডের জন্য লিঙ্ক: http://www.openjs.com/scriptts/events/keyboard_shortcuts/#
অ্যালান বেলোদের উত্তর:! (E.altKey) এমন ব্যবহারকারীদের জন্য যোগ করা হয়েছে যারা AltGrটাইপ করার সময় ব্যবহার করেন (যেমন পোল্যান্ড)। ছাড়াই এই টিপে AltGr+ + Sহিসাবে একই ফল দেবে Ctrl+ +S
$(document).keydown(function(e) {
if ((e.which == '115' || e.which == '83' ) && (e.ctrlKey || e.metaKey) && !(e.altKey))
{
e.preventDefault();
alert("Ctrl-s pressed");
return false;
}
return true; });
আমার তৈরি এই প্লাগিনটি সহায়ক হতে পারে।
আপনি এই প্লাগইনটি ব্যবহার করতে পারেন আপনাকে কী কোড সরবরাহ করতে হবে এবং ফাংশনটি চালাতে হবে
simulatorControl([17,83], function(){
console.log('You have pressed Ctrl+Z');
});
কোডটিতে আমি Ctrl+ এর জন্য কীভাবে সম্পাদন করব তা প্রদর্শন করেছি S। লিঙ্কটিতে আপনি বিশদ ডকুমেন্টেশন পাবেন। প্লাগইন কোডেপেনে আমার কলমের জাভাস্ক্রিপ্ট কোড বিভাগে রয়েছে।
আমি IE এ আমার সমস্যাটি সমাধান করেছি , alert("With a message")ডিফল্ট আচরণ রোধ করতে একটি ব্যবহার করে:
window.addEventListener("keydown", function (e) {
if(e.ctrlKey || e.metaKey){
e.preventDefault(); //Good browsers
if (navigator.userAgent.indexOf('MSIE') !== -1 || navigator.appVersion.indexOf('Trident/') > 0) { //hack for ie
alert("Please, use the print button located on the top bar");
return;
}
}
});