Autor | Zpráva | ||
---|---|---|---|
Tomášeek Profil |
#1 · Zasláno: 19. 3. 2017, 11:45:21
Ahoj,
snažím se přijít na to, jak detekovat stisk klávesové zkratky Ctrl+V (resp. Cmd+V na MacOS) a následně provést nějakou akci. Tou akcí myslím focusnutí textového inputu a vložení do něj obsahu ze schránky. Našel jsem zatím jen scripty, které umožní odchytnout tuto klávesovou zkratku, pokud je input již aktivní, např. How to detect Ctrl+V, Ctrl+C using JavaScript? (ale i na mnoha jiných místech). Navázat onpaste , resp. .on('paste') na $(document) či něco jiného mimo input se mi nepodařilo. Dá se to?
Děkuji. |
||
Časová prodleva: 3 dny
|
|||
Rararach Profil * |
Do čeho jiného chceš v HTML něco pastnout, než do input?
Tady je taky něco o onpaste: www.w3schools.com/jsref/event_onpaste.asp i toto je možnost? www.w3schools.com/tags/tryit.asp?filename=tryhtml5_ev_onpaste_p |
||
Tomášeek Profil |
#3 · Zasláno: 22. 3. 2017, 14:33:02
Rararach:
Když nevím, tak se raději nevyjadřuji. Myslím, že jsem popsal, co chci udělat, vyjadřuj se prosím k tématu, víš-li. Nevíš-li, raději mlč. |
||
Chamurappi Profil |
#4 · Zasláno: 22. 3. 2017, 14:57:55
Reaguji na Tomáškaa:
Obávám se, že jediné řešení bude dát rovnou při načtení (nebo při prvním stisku Ctrl/Shift/Cmd) focus nějakému editovatelnému prvku… což pak znamená, že nebudou fungovat jakékoliv klávesové zkratky, které by měly vliv na stránku a které v editovatelném prvku budou vnímané jinak (třeba šipky nahoru/dolu, mezerník). Třeba by nějak šlo událost na focusnutém prvku zachytit, prozkoumat, zda to nemůže být zkratka pro vložení (což může být mimochodem i Shift+Insert), a pokud není, tak ji uměle vyvolat na window .
|
||
Tomášeek Profil |
#5 · Zasláno: 22. 3. 2017, 15:28:36
Chamurappi:
„což může být mimochodem i Shift+Insert“ To zde nehrozí, držme se jen Ctrl+V :-) „že jediné řešení bude dát rovnou při načtení ([...]) focus nějakému editovatelnému prvku“ To možné nebude, do doby, než chci něco psát/vkládat, se potřebuji šipkami volně pohybovat po "tabulce" mezi buňkami (odchytávám stisk šipky a vizuálně odlišuji "aktivní" buňku tabulky). „... nebo při prvním stisku Ctrl/Shift/Cmd ...“ To by šlo. Zkusím zapracovat :-) Jen tak mimochodem, jelikož nemám kde odzkoušet, jak efektivně a nejjednodušeji odchytnout v JS Ctrl/Cmd? Někde jsem četl, že by to mohlo být ctrlKey , nebo musím přes číselný kód klávesy? Jaké to eventuálně jsou (Cmd na Macu si zjistím, resp. znám, Ctrl na Win bohužel nikoliv).
Děkuji za reakci, i když jsi mě moc nepotěšil... myslel jsem, že půjde detekovat "paste" i v momentě, kdy vlastně není kam pastnout. To evidentně nejde, alespoň ne nijak jednoduše (představoval jsem si to asi takhle: Ctrl+V > "Ha, snaha o paste, mám kam pastnout? Ano > Pastnu. Ne > Ignoruji.") |
||
Keeehi Profil |
#6 · Zasláno: 22. 3. 2017, 20:49:11
Nějak to určitě jde. Slack mi ctrl+V odchytí i když není aktivní pole pro chat. Netuším, jak to tam mají vyřešené, to si budeš muset zjistit sám.
|
||
xROAL Profil |
Minimálne v Chrome (na Win) úplne bez problému funguje a odchytí paste všade:
window.addEventListener('paste', e => console.log(e)); Podľa cainuse.com toto však umožňuje len Chrome a Opera (ak správne chápem). IE, Edge, Firefox a Safari nevyvolajú udalosť paste bez toho, aby bol označený nejaký editovateľný prvok.
|
||
Časová prodleva: 8 let
|
0