Event STRG + V
FireGlow
- java
Servus!
Ich möchte beim pasten von Text einen Event auslösen, wie krieg ich das hin?
function eventManager(Ereignis) {
if (!Ereignis) Ereignis = window.event;
if (Ereignis.which)
{
Tastencode = Ereignis.which;
}
else if (Ereignis.keyCode)
{
Tastencode = Ereignis.keyCode;
}
if (Tastencode!=86) {
lastTastenCode = Tastencode;
}
if (Tastencode==86)
{
Tastensumme = 86 + lastTastenCode;
if(Tastensumme==103)
{
alert('STRG V');
}
}
Das ist mein Ansatz, aber es klappt nicht richtig... versteh aber auch ent ganz warums net klappt ;)!
Bin für jede Hilfe dankbar
-FireGlow
Hallo FireGlow,
Servus!
Ich möchte beim pasten von Text einen Event auslösen, wie krieg ich das hin?
Indem Du bspw. auf ctrlKey zurückgreifst.
Micha
Mit freundlichem Gruß
Micha
Hallo,
Nur mal so am Rande: das ist Javascript!
Beste Grüße
Hallo,
Ich möchte beim pasten von Text einen Event auslösen, wie krieg ich das hin?
Im IE gibt es onpaste.
function eventManager(Ereignis) {
if (!Ereignis) Ereignis = window.event;
if (Ereignis.which)
{
Tastencode = Ereignis.which;
}else if (Ereignis.keyCode)
{
Tastencode = Ereignis.keyCode;
}
if (Tastencode!=86) {
lastTastenCode = Tastencode;
}
if (Tastencode==86)
{
Tastensumme = 86 + lastTastenCode;if(Tastensumme==103)
{
alert('STRG V');
}
}
Frage lieber in einem Rutsch ab, ob die Steuerung-Taste gedrückt ist und ob der Tastencode der Taste V entspricht. Im IE kannst du einfach onpaste verwenden.
Es ist allerdings gar nicht so einfach, wirklich zuverlässig herauszubekommen, ob Strg + V gedrückt wurde. Mithilfe des SELFHTML-Chats habe ich mal ein Cross-Browser-Beispiel gebastelt:
<html><head>
<script type="text/javascript">
[code lang=javascript]window.onload = init;
function logg (text) {
var div_elem = document.createElement("div");
div_elem.appendChild(document.createTextNode(text));
logg.log_element.appendChild(div_elem);
}
function keypress (e) {
e = e || window.event;
logg(e.type + " ctrlKey:" + e.ctrlKey + " metaKey:" + e.metaKey + " which:" + e.which + " keyCode:" + e.keyCode + " charCode:" + e.charCode);
if ((e.ctrlKey || e.metaKey) && e.charCode == 118) {
logg("paste detected (Gecko)");
} else if (e.ctrlKey && e.keyCode == 86) {
logg("paste detected (Opera)");
} else if (e.ctrlKey && e.keyCode == 22) {
logg("paste detected (Konqueror)");
} else if (e.metaKey && e.keyCode == 118) {
logg("paste detected (Safari)");
}
}
function paste () {
logg("paste detected (IE)");
}
function init () {
logg.log_element = document.getElementById("log");
var elem = document.getElementById("i");
elem.onkeypress = keypress;
elem.onpaste = paste;
}
</script>
</head><body>
<input type="text" id="i">
<div id="log"></div>
</body></html>[/code]
Die Abfrage von metaKey zielt auf Macintosh-Browser mit Apfel + V als Tastaturkombination zum Einfügen.
Mathias
if ((e.ctrlKey || e.metaKey) && e.charCode == 118) {
...
} else if (e.metaKey && e.keyCode == 118) {
Die Abfrage ist dann natürlich doppelt.
(Danke, Tim.)
Mathias
Moin!
Hört sich alles cool an, schaus mir mal durch.
Danke, sollte alles wichtige dabei sein! ;-)
Gruß
FireGlow