ändern - javascript innerhtml




Wie erkenne ich die rechte Maustaste+Einfügen mit JavaScript? (5)

Gibt es eine Möglichkeit, einen Rechtsklick zu erkennen, gefolgt von Einfügen mit JavaScript in IE und Firefox?

Aktualisieren:

Ich entschied mich dafür, Jquery zu benutzen:

$('#controlId').bind('paste', null, function() {
    // code
});

Es ist nicht genau das, was ich gesucht habe (weil es auf "Strg + V" sowie in "Rechtsklick + Einfügen" gefeuert wird, aber ich kann es umgehen.

Getestet auf Chrome, Firefox 3, IE 7 und IE 6 und es funktioniert


Ein billiger Hack (der funktioniert), den du ausprobieren kannst, ist:

  • jQuerys Mausspeicherfunktion.

Ich habe mit IE8 festgestellt, dass, wenn Sie mit der rechten Maustaste in ein Textfeld klicken und dann "Einfügen" auswählen, das "mouseleave" -Ereignis verzögert wird, bis die Paste fertig ist. So feuert es konsequent gleich nach der Paste! :) Funktioniert für mich und hat mich eigentlich völlig aus der Klemme gebracht.

Dies ist nur für eine Intranet-App, die ich nicht in Firefox usw. getestet habe.

Prost


Ich habe folgendes gemacht, das nur auf Mouseup feuert:

onmouseup="jQuery(this).on('paste',function(event){setTimeout(function(){alert('Paste detected!');},100);});"

Ich mag diese Lösung:

$('#txt_field').bind('input propertychange', function() {
   console.log($(this).val());
});

Mit IE hast du onpaste

Mit Mozilla können Sie auf Eingabe und schauen

elementReference.addEventListener("DOMCharacterDataModified", function(e){ foo(e);}, false);

Es gibt keine einfache Lösung.

Eric


$('#controlId').bind('paste', null, function(e) {
    if(!e.keyCode){
       /*
          since no key was down at the time of the event we can assume it was
          from the toolbar or right click menu, and not a ctrl+v
       */
    }
});




jquery