2012-04-27 17 views
6

के साथ क्रोम में खुली डाउनलोड विंडो को रोकें मुझे अपनी वेबसाइट (एमवीसी 3, सी #) और बारकोड रीडर के साथ यह समस्या है। मेरी रूप में मैं कुछ इस तरह है:बारकोड रीडर

<ajax form....> 

<input type=text /> 

<div id=list> 
</div> 

</form> 

और इनपुट एक बारकोड रीडर से भर जाता है और स्वचालित रूप से फार्म का है कि ajax के साथ, आईडी = सूची के साथ div भरता सबमिट करता है। मेरी समस्या यह है कि क्रोम के साथ और यानी, पाठ सबमिट होने के बाद, क्रोम में एक डाउनलोड विंडो दिखाई देती है और पसंदीदा विंडो यानी दिखाई देती है। मुझे लगता है कि ऐसा इसलिए है क्योंकि बारकोड रीडर पाठ में एक [सीआर] [एलएफ] प्रविष्ट करता है और वह उन खिड़कियों को खोलता है। मैंने सोचा कि बारकोड रीडर कुछ पल में ctrl-j डालने वाला था क्योंकि वह संयोजन क्रोम में डाउनलोड विंडो खोलता है और पसंदीदा में यानी, लेकिन फ़ायरफ़ॉक्स के साथ डाउनलोड विंडो खुलती नहीं है (और ctrl-j भी है)।

मैं अपने क्लाइंट को बारकोड रीडर को कॉन्फ़िगर करने के लिए नहीं बताना चाहता हूं, इसलिए मेरा पृष्ठ काम करता है, इसलिए मुझे जावास्क्रिप्ट में एक सॉल्शन चाहिए जो शायद उस समस्या को हल करे।

धन्यवाद !!!

उत्तर

5

मुझे this लिंक मिला लेकिन एकमात्र समाधान आपके स्कैनर के डिफ़ॉल्ट चरित्र को बदलना था ... मुझे यकीन नहीं है कि मैं अपना बदल सकता हूं, हालांकि, आप जैसे ब्राउज़र ब्राउज़र से संबंधित फिक्स भी ढूंढ रहे हैं। शायद जावास्क्रिप्ट। मैं जावास्क्रिप्ट के साथ वर्णों को संभालने का प्रयास करने की कोशिश करूंगा ... अगर मुझे कोई सफलता मिलती है तो मैं कोशिश करूँगा और आपको वापस आने के लिए याद रखूंगा और आपको बताऊंगा कि

मुझे लगता है कि यह समस्या हल करता है ....

$(document).ready(function(){ 
    $("#input").keydown(function(e){ 
     if(e.which==17 || e.which==74){ 
      e.preventDefault(); 
     }else{ 
      console.log(e.which); 
     } 
    }) 
}); 

lemme पता है कि क्या आपके लिए भी अपने कार्यों .. वाकई संचय भी खाली कर ...

+0

मेरे बारकोड 'शामिल -' जो कीकोड 173 है और यह एकल स्तंभ मोड में स्क्रीन विभाजित है, धन्यवाद @Felipe अल्मीडा – Tiger

+1

यह भी कॉपी पेस्ट आदेशों को अवरुद्ध कर देगा मैं इसे करने के लिए छोटे फिक्स को शामिल किया है और यह केवल ब्लॉक होगा ctrl + j var prevKey = ''; \t \t $ ("इनपुट")। Keydown (समारोह (ई) { \t \t अगर (e.which == 74 && prevKey == '17') { \t \t console.log ('Ctrl + J occered'); \t \t e.preventDefault(); \t \t} \t \t \t अगर (e.which == 17) { \t \t \t prevKey = 17; \t \t} else { \t prevKey = ''; \t \t} \t \t \t}); –

0

मेरे स्कैनर (Intermec SR30) बार कोड के बाद 3 नए लाइन वर्ण लागू करने के लिए सेट किया गया है । मैंने इसे Vim खोलकर पाया, डालें, फिर बार कोड स्कैन किया। तब मैं फ़ाइल cat'ed को आयुध डिपो -ax:

0000000 3 1 2 2 1 0 9 9 9 4 8 5 2 8 nl nl 
     3133 3232 3031 3939 3439 3538 3832 0a0a 
0000020 nl 
      000a 
0000021 

मैं जाल 'nl साथ की: (कीबोर्ड से Ctrl + J)

$(document).ready(function(){ 
    $("#barcode").keypress(function(e){ 
     console.log('"' + e.keyCode + '"\n'); 
     if(e.keyCode == 13){ 
      e.preventDefault(); 
     } 
    }) 
}); 

लेकिन डाउनलोड खिड़की से खोलने घटना खुले पृष्ठ पर पहुंचने से पहले ब्राउजर द्वारा इसे फिसल दिया जाता है। यह समस्या फ़ायरफ़ॉक्स 30.0 को भी पीड़ित करती है।

1

इस कोड को मुझे

$(document).ready(function(){ 
    $("#input").keydown(function(e){ 
     if(e.which==17 || e.which==74 || e.keyCode == 13){ 
      e.preventDefault(); 
     } 
    }) 
}); 
0

लिए काम करता है अनुमोदित जवाब CTRL और जम्मू कुंजी ब्लॉक कर रहा है पर कोड। यह केवल Ctrl + जम्मू

$("#barcode").keypress(function(event){ 
    if(event.keyCode == 74 && event.ctrlKey){ 
     event.preventDefault(); 
    } 
}); 
0

इस कोड के नीचे काम नहीं करेगा अवरोधित करती हैं। क्योंकि यदि बारकोड मान में 'जे' चरित्र है, तो आप सही परिणाम प्राप्त नहीं कर पाएंगे। हम e.ctrlkey नियंत्रण जोड़ने की कोशिश करते हैं लेकिन इस बार, बारकोड का केवल एक ही अक्षर पुनर्प्राप्त किया जाएगा। जेएस के माध्यम से समाधान मुश्किल लगता है। शायद सबसे अच्छा विकल्प स्कैनर सेटिंग्स बदल रहा है।

$(document).ready(function(){ 
    $("#input").keydown(function(e){ 
     if(e.which==17 || e.which==74 || e.keyCode == 13){ 
      e.preventDefault(); 
     } 
    }) 
}); 
0

यह मेरे लिए काम करता है।

<script> 
    document.addEventListener('keydown', function(event) { 
    if(event.keyCode == 13 || event.keyCode == 17 || event.keyCode == 74) 
     event.preventDefault(); 
    }); 
</script> 
संबंधित मुद्दे