2009-07-15 17 views
6

संपादित करें: के बाद थोड़ी देर के इंतजार कर रहे थे और अभी तक कुछ भी नहीं मिला है, मैं तय कर लिया है अब केवल IE के लिए शॉर्टकट अक्षम thingy करने के लिए। आईएस शॉर्टकट कुंजी को वीबीएसक्रिप्ट के माध्यम से मेनू/प्रिंट आदि तक पहुंचने की संभावना है?अक्षम इंटरनेट एक्सप्लोरर शॉर्टकट कुंजी

क्या ब्राउज़र शॉर्टर्स को अक्षम करना संभव है?

क्योंकि उनमें से कई आवेदन में उपयोग कर रहे हैं। उदाहरण के लिए, Ctrl + पी उपयोग कर रहा है और मैं नहीं चाहता कि ब्राउज़र प्रिंट विंडो पॉप अप करे।

+0

क्या आप इसे काम करने के लिए प्रबंधित करते थे? मुझे एक ही समस्या है और अभी तक कोई समाधान नहीं मिला। –

+0

@DianaAmza, मुझे इसके लिए कोई समाधान नहीं मिला। आईई आपको डिफ़ॉल्ट व्यवहार को ओवरराइड करने की अनुमति नहीं देगा। –

+0

ठीक है, धन्यवाद! –

उत्तर

4

हां, आप जावास्क्रिप्ट के साथ विभिन्न कुंजी संयोजनों को सुन सकते हैं और डिफ़ॉल्ट व्यवहार अक्षम कर सकते हैं। यहां तक ​​कि एक लाइब्रेरी भी है जिसका आप उपयोग कर सकते हैं और here का परीक्षण कर सकते हैं। मैंने अभी अपने डेमो टेक्स्टरेरा में Google क्रोम और फ़ायरफ़ॉक्स का उपयोग करके इसका परीक्षण किया है, और यह आपके काम के अनुसार काम करता है।

shortcut.add("Ctrl+P",function() { 
    return; 
}); 

यह ऊपर सूचीबद्ध ब्राउज़र में काम करता है, लेकिन आईई आपको कुछ मामलों में डिफ़ॉल्ट व्यवहार को ओवरराइड करने की अनुमति नहीं देगा।

IE में हैं तो आपको कुछ के साथ पूरी तरह Ctrl कुंजी निष्क्रिय करने के लिए है:

document.onkeydown = function() { 
    if (event.keyCode == 17) alert('Ctrl Key is disabled'); 
}; 

कौन सा आदर्श नहीं है और शायद नहीं तुम क्या चाहते है, लेकिन यह काम करेंगे।

+0

Ctrl + P :( –

+0

पर प्रिंट विंडो प्राप्त करना मैं नीचे "लाइव निष्पादन" पैनल का उपयोग करके थक गया हूं। मैं "Ctrl + Shift + X" से "Ctrl + P" में कुंजी बदलता हूं और यह प्रिंट विंडो दिखा रहा है इसका मतलब है कि ब्राउज़र अभी भी चाबियाँ सुन रहा है। मैं फ़ायरफ़ॉक्स का उपयोग कर रहा हूं 3. –

+1

कुछ ऐसे क्रियाएं हैं जिन्हें आप अक्षम नहीं कर सकते हैं। – Boldewyn

3

आप कीडाउन ईवेंट के लिए इवेंट हैंडलर बनाने का प्रयास कर सकते हैं, कीकोड पर जांचें और यदि आवश्यक हो तो इसकी डिफ़ॉल्ट कार्रवाई को रोकें। हालांकि यह सभी ब्राउज़रों में काम नहीं करेगा।

Firefox के लिए एक उदाहरण ("प्रिंट" रद्द लघु कुंजी, सत्यापित):

document.addEventListener("keydown", function(oEvent) { 
    if (oEvent.keyCode == 80 && oEvent.ctrlKey) 
     oEvent.preventDefault(); 
}, false) 
+0

धन्यवाद सर्गेई। किसी भी विचार आईई के लिए कुछ समान है। –

+0

नहीं, अनुमान है कि आईई में शॉर्टकट को रोकने का कोई तरीका नहीं है। लेकिन क्या यह वास्तव में कोशिश करने के लिए कोई समझ में आता है? उपयोगकर्ता मेनू तक पहुंचकर टेक्स्ट प्रिंट या पेस्ट कर सकता है। –

+0

मुझे कुछ चाबियाँ अक्षम करनी हैं और उन्हें किसी अन्य उद्देश्य के लिए उपयोग में लाया गया है। असल में, यह एक आवश्यकता थी क्योंकि सिस्टम को डेस्कटॉप पर पहली बार लिखा गया था और अब यह वेब पर जा रहा है। और परिवर्तन के इस पहले चरण में वे चाहते हैं कि उपयोगकर्ता एक ही अनुभव प्राप्त करें। कुछ उद्देश्यों के लिए अक्सर कुछ चाबियों का उपयोग करें और ctrl + p एक प्रयोग है। –

1

मैं इसी तरह की समस्या पर काम कर रहा हूँ, hooking keyboard event कोड नीचे निष्क्रिय करने के लिए, फ्लैश वस्तु को छोड़कर पर IE नहीं है अच्छी तरह से काम करता है फोकस मिला चूंकि मैं फ़्लैश ऑब्जेक्ट पर कीबोर्ड ईवेंट को संभालने का प्रयास कर रहा हूं, यह कोड मेरे लिए काम नहीं करता है।

function hookKeyboardEvents(e) { 
    // get key code 
    var key_code = (window.event) ? event.keyCode : e.which; 

    // case :if it is IE event 
    if (window.event) 
    { 
     if (!event.shiftKey && !event.ctrlKey) { 
      window.event.returnValue = null; 
      event.keyCode = 0; 
     } 
    } 
    // case: if it is firefox event 
    else 
     e.preventDefault(); 
} 

window.document.onkeydown = hookKeyboardEvents; 
+0

यह कोड केवल सभी फ़ायरफ़ॉक्स – Oki

+0

के लिए सभी महत्वपूर्ण स्ट्रोक और कार्यों को रोकता है जो किसी भी चीज़ पर कोई भाग्य है जो IE के लिए भी काम कर सकता है? –

+0

आप "ई" में गुजर रहे हैं, न कि "घटना"। तो "window.event" के सभी संदर्भों को बदलें या "ई" का उपयोग करें। वे वही होना चाहिए। –

1

आप आवेदन से पर Ctrl + P विधि बुला सिर्फ कीकोड zero.I लगता है कि आपकी समस्या का समाधान होगा के रूप में बनाने के बाद ...

window.event.keyCode = 0;

इस zero..So रूप कीकोड सेट हो जाएगा जब कीकोड के लिए एक्सप्लोरर चेकों यह शून्य हो जाएगा ... तो डिफ़ॉल्ट समारोह निष्पादित नहीं होगा ...

इस प्रयास करें ... बस एक सुझाव

+0

IE11 –

0

यह आईई 8 में मेरे लिए काम करता है। महत्वपूर्ण भाग आईई को ev.returnValue को गलत पर सेट करने की आवश्यकता है। नोट: यह केवल तभी काम करता है जब आपने दस्तावेज़ पर कुछ तत्वों पर ध्यान केंद्रित किया हो ... यानी, यदि आप केवल पृष्ठ लोड करते हैं और 'ctrl-p' दबाते हैं तो आप प्रिंट संवाद देखेंगे। लेकिन यदि आप पृष्ठ पर कहीं भी क्लिक करते हैं, तो इसे आज़माएं, इसे प्रिंट संवाद को दबाना चाहिए।

document.onkeydown = function (e) { 

    var ev = e||window.event; 

    // Do what I want keys to do ... 

    // Block browser short cuts 
    if(ev.preventDefault) // non-IE browsers 
     ev.preventDefault(); 
    else // IE Only 
     ev.returnValue = false; 
}; 
+1

के लिए काम नहीं किया क्या आपने वास्तव में इसका परीक्षण किया था? क्योंकि यह IE9 – Paul

+0

में काम नहीं करता है हां, मैंने इसे कई वर्षों तक उत्पादन में किया है और यह ठीक काम करता है। हालांकि, मैं उपरोक्त "ई" पैरामीटर में गुजरना भूल सकता था। बस इसे संपादित किया। मैंने इस तथ्य के बारे में एक नोट भी जोड़ा कि यह समाधान केवल तभी काम करता है जब आपके दस्तावेज़ पर ध्यान केंद्रित किया जाता है। यदि पृष्ठ पर कोई फोकस नहीं है, तो प्रिंट संवाद दिखाई देगा। ऐसा मत सोचो कि इसके आसपास कोई रास्ता है। – cakidnyc

2

वहाँ एक अच्छा, साथ IE10 + लड़ने के लिए, ऑल्ट कुंजी संयोजन पर प्रदर्शन ब्राउजर मेनु से बचने के लिए Alt + F, Alt + H तरह चाल ...

मैं हाल ही में IE11 पर इस्तेमाल किया, बस के साथ एक लंगर जोड़ने है आपके शरीर

<body> 
    <a href="#" accesskey="f"></a> 
    <script type="text/javascript"> 
    window.onkeydown = function(e){ 
      console.log(e.keyCode + " alt: " + e.altKey); 
      e.preventDefault(); 
    }; 
    window.onkeyup = function(e){ 
      console.log(e.keyCode + " alt: " + e.altKey); 
      e.preventDefault(); 
    }; 
    </script> 
</body> 

अब पर [yourKey] जब आप Alt + f प्रेस ब्राउज़र प्रदर्शित नहीं करेगा "फाइल पॉपअप" हमेशा की तरह, और घटनाओं keydown करने देगा और मिल KeyUp: विशेषता accesskey आप के लिए, और न केवल keydown।

+0

केवल समाधान जो IE11 के लिए काम करता था। –

संबंधित मुद्दे