Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Znaki diakrytyczne
Hpsi
post
Post #1





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Witam muszę zrobić przechwytywanie znaków diakrytycznych w różnych językach i mam pewien problem.

Więc pokrótce, w celu przechwytywania znaków użyłem jQuery pluginem js-hotkeys.

Wszystko byłoby piękne, ale muszę przechwytywać na "lewym alt" znaki do przykładu:

w języku hiszpańskim na "lewy alt"+u ma pojawiać się znak: ú -> i tutaj pojawia się problem z IE, gdyż prawy alt + u w skrótach na IE oznacza ulubione (przynajmniej u mnie tak się włącza)

podobne problemy są z "alt + e" (dodatkowy problem chrome - otwiera się lista "ustawienia chrome" ) , " alt + a " , " alt + c " , " alt + n "



czy mógłby ktoś mi doradzić co z tym zrobić?

Ten post edytował Hpsi 25.10.2011, 13:12:46


--------------------
Daiquiri: T1 = (dx/dt * s)^hpsi
Daiquiri: gdzie T1 - Twój czas przybycia na miejsce, dx/dt - prędkość, s droga
Daiquiri: brb trzeba by to poprawić T1 - Czas jaki Ci to zajmie
Daiquiri: Zatem T - czas dotarcia p T1 + T2 gdzie T2 = aktualny czas

===
po prostu kocham ją :D haha
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Sephirus
post
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Opcje masz dwie - użyj flasha - on na pewno przechwytuje wszystkie znaki lub spróbuj prosty skrypt JS w którym sprawdzisz jedynie czy działa blokowanie bąbelkowania eventów w IE. Najprościej:

[JAVASCRIPT] pobierz, plaintext
  1.  
  2. function myKeyHandler(event)
  3. {
  4. if(!event) event = window.event;
  5.  
  6. if('preventDefault' in event) event.preventDefault();
  7. event.cancelBubble = true;
  8. event.returnValue = false;
  9. return false;
  10. }
  11.  
  12. document.attachEvent('onkeyup',myKeyHandler);
  13. document.attachEvent('onkeydown',myKeyHandler);
  14.  
[JAVASCRIPT] pobierz, plaintext


Dla innych browserów niż IE użyj:

[JAVASCRIPT] pobierz, plaintext
  1. [...]
  2.  
  3. document.addEventListener('keyup',myKeyHandler,true);
  4. document.addEventListener('keydown',myKeyHandler,true);
[JAVASCRIPT] pobierz, plaintext


Co robi ten skrypt? Nic - i właśnie o to chodzi - przechwytuje on wszystkie naciśnięcia klawiszy i blokuje to co powinno się stać normalnie po ich wciśnięciu. Jeżeli na stronie z tym skryptem te skróty klawiszowe nie zadziałają to znaczy, że trzeba pogrzebać trochę w JS, jeśli i tak przejdą domyślne operacje to znaczy że na 99,9999% się nie da :/

EDIT: Poprawiłem błędy ;P

Ten post edytował Sephirus 25.10.2011, 15:20:04


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
Hpsi
post
Post #3





Grupa: Zarejestrowani
Postów: 483
Pomógł: 50
Dołączył: 15.03.2005
Skąd: Poznań

Ostrzeżenie: (0%)
-----


Hm, twój sposób autentycznie przechwytuje wszystkie wszystko co związane z klawiszami klawiatury, lecz no niestety nie przechwytuje ich na alternatywnych przeglądarkach ...
mimo wszystko i tak dziękuje za pomoc

--
pomęczę się jeszcze z IE i zrobie to pod jedna przeglądarke wink.gif

Ten post edytował Hpsi 26.10.2011, 09:12:43


--------------------
Daiquiri: T1 = (dx/dt * s)^hpsi
Daiquiri: gdzie T1 - Twój czas przybycia na miejsce, dx/dt - prędkość, s droga
Daiquiri: brb trzeba by to poprawić T1 - Czas jaki Ci to zajmie
Daiquiri: Zatem T - czas dotarcia p T1 + T2 gdzie T2 = aktualny czas

===
po prostu kocham ją :D haha
Go to the top of the page
+Quote Post
by_ikar
post
Post #4





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


Hmm, nie wiem do czego ci to konkretnie, ale możesz zrobić wyrażenie regularne, które będzie łapać wszystkie znaki diakrytyczne po wpisaniu danego znaku w konkretne pole i dalej niech się dzieje co ci potrzeba.

Wyrażenie przykładowo może wyglądać tak:

Kod
/([^\w\d\s\.\+\*\?\^\$\[\]\)\|\{\}\/\#&,:-#]+)/is


Coś w ten deseń, na pewno wszystkich znaków nie wymieniłem, coś tam jeszcze by się znalazło, ale sam pomysł wydaje mi się możliwy do ogarnięcia już na wszystkich przeglądarkach wink.gif

Ten post edytował by_ikar 26.10.2011, 10:10:50
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 11:24