Próbuję utworzyć rozszerzenie chrome, które modyfikuje tekst w aktywnym obszarze tekstowym okna czatu na Facebooku. Ale chcę, aby zmiana miała miejsce tylko wtedy, gdy użytkownik naciśnie klawisz Enter, aby tekst nie zmienił się, gdy jest jeszcze w obszarze tekstowym. Chcę, aby to się stało przy użyciu javascript i sprawiają, że czuje się tak, jakby działo się w tle, chociaż chcę, aby został wywołany na keydown
klucz enter.Jak powiązać wiele działań z wydarzeniem na klawiaturze
Teraz istotne JavaScript w oknie czatu w textarea w Facebook jest:
<textarea class="blah"
onkeydown="window.Bootloader && Bootloader.loadComponents(["control-textarea"],
function() { TextAreaControl.getInstance(this) }.bind(this)); ">
</textarea>
A moje rozszerzenie pliku w JavaScript. Wiążę keydown
zdarzeń przy użyciu coś takiego:
//elem is bound to the focussed textarea object
elem.onkeydown = function(evt) {
if(evt.keyCode == 13){
//Some javascript code I want to execute here...
}
};
myślę, gdy tylko użytkownik naciśnie wprowadzić klawisza textarea jest wyczyszczone i jakieś żądania POST jest wykonany. Tak więc tracę zakres tekstu, który chciałem zmodyfikować za pomocą JavaScript. Sprawdziłem, czy powiązanie klawisza Enter działa dla mojego rozszerzenia, naciskając przesunięcie + wprowadź i zmodyfikowało tekst bez problemu. Mój skrypt działa dobrze.
Jednak chcę, aby mój skrypt został wykonany zanim tekst zostanie wyczyszczony i zostanie wysłane żądanie pocztowe. Po prostu nie chcę, aby użytkownik widział, jak zmienia się tekst.
Czy mogę dodać/zmodyfikować keybinding z textarea używanego przez Facebooka, jak pokazano powyżej w moim skrypcie dla rozszerzenia google chrome? Każda pomoc jest głęboko doceniana.
Czy ktoś może mi w tym pomóc? – Annihilator8080
Znaleziono odpowiedź [tutaj] (http://stackoverflow.com/questions/13880126/override-isting -onkeydown-function) !! – maxisme