2012-04-27 3 views
6

Ich habe dieses Problem mit meiner Website (MVC3, C#) und einem Barcode-Leser. In meiner Form habe ich so etwas wie diese:Offenes Download-Fenster in Chrome mit Barcode-Leser verhindern

<ajax form....> 

<input type=text /> 

<div id=list> 
</div> 

</form> 

Und der Eingang mit einem Barcodeleser gefüllt und legt automatisch die Form, die mit Ajax, das div mit der id = Liste füllt. Mein Problem ist, dass mit Chrome und zB, nachdem der Text eingereicht wurde, erscheint ein Download-Fenster in Chrome und das Favoriten-Fenster erscheint in ie. Ich nehme an, das liegt daran, dass der Barcode-Leser einen [CR] [LF] in den Text eingibt und diese Fenster öffnet. Ich dachte, dass der Barcodeleser irgendwann eine Ctrl-j einfügen würde, weil diese Kombination das Download-Fenster in Chrome und die Favoriten in ie öffnet, aber mit Firefox öffnet sich das Download-Fenster nicht (und ist auch ctrl-j).

Ich möchte meinem Kunden nicht sagen, dass er den Barcodeleser konfigurieren soll, damit meine Seite funktioniert, also möchte ich vielleicht eine Lösung in Javascript, die dieses Problem behebt.

danke !!!

Antwort

5

Ich fand this Link, aber die einzige Lösung war, das Standardzeichen Ihres Scanners zu ändern ... Ich bin mir nicht sicher, ob ich meine ändern kann, also würde ich, wie Sie, nach einer browserbezogenen Korrektur suchen. vielleicht Javascript. Ich werde versuchen, die Charaktere mit Javascript zu behandeln, um das zu verhindern ... wenn ich Erfolg habe, werde ich versuchen und erinnere mich, hierher zu kommen und Ihnen zu sagen hehehehehe

Ich denke, das löst das Problem ....

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

lemme wissen, ob Sie seine Werke auch .. sicherstellen, dass Sie den Cache leeren ...

+0

Mein Barcode enthält '-' welchen Tastencode 173 ist und es Split-Screen in einzelnen Spaltenmodus, Danke @Felipe Almeida – Tiger

+1

Es wird auch kopieren und einfügen Befehle blockieren habe ich kleines Updates hinzugefügt, und es wird nur Block ctrl + j var prevKey = ''; \t \t $ ("input"). Keydown (function (e) { \t \t if (e.which == 74 && prevKey == '17') { \t \t console.log ('Strg + j occered'); \t \t e.preventDefault(); \t \t} \t \t \t if (e.which == 17) { \t \t \t prevKey = 17; \t \t} else { \t \t \t prevKey = ''; \t \t} \t \t \t}); –

0

Mein Scanner (Intermec SR30) eingerichtet ist 3 neue Zeile Zeichen nach dem Strichcode anzuwenden . Ich fand das, indem ich Vim öffnete, einfügte und dann den Barcode scannte. Dann cat'ed ich die Datei auf od 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 

Ich kann fangen die ‚nl ist mit:

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

aber der Download-Fenster-offen-Ereignis (Strg + j von der Tastatur) wird vom Browser verschlungen, bevor es auf die geöffnete Seite gelangt. Dieses Problem betrifft auch Firefox 30.0.

1

dieser Code funktioniert für mich

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

Der Code auf dem genehmigten Antwort STRG und J Tasten blockiert. Dies würde nur dann blockieren, STRG + J

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

Dieser Code unten funktioniert nicht. Wenn der Barcode-Wert "J" hat, können Sie nicht das korrekte Ergebnis erhalten. Wir versuchen, das e.ctrlkey-Steuerelement hinzuzufügen, aber dieses Mal wird nur ein Zeichen des Barcodes abgerufen. Lösung über js scheint hart zu sein. Vielleicht ist die beste Option, Scannereinstellungen zu ändern.

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

Das funktioniert für mich.

<script> 
    document.addEventListener('keydown', function(event) { 
    if(event.keyCode == 13 || event.keyCode == 17 || event.keyCode == 74) 
     event.preventDefault(); 
    }); 
</script> 
Verwandte Themen