2013-01-29 13 views
6

To nie jest to samo pytanie, co wszystkie pozostałe.Już uniemożliwiaję przeglądarce Chrome przejście do trybu zaznaczania tekstu podczas przeciągania. (Edycja: chcę tylko zablokować ikonę/wygląd, nie ograniczać lokalizacji lub ruchu, i tylko pomiędzy mousedown i mouseup) Problem, który chciałbym uniknąć, to że Chrome zmienia kursor podczas przeciągania, do tego, co znajduje się pod kursorem (ie-i-beam, podczas kontroli nad tekstem, hand while over overlink, etc).Zablokuj kursor myszy podczas przeciągania w Chrome

IE i FireFox/Moz obsługują element.setCapture(), który wywołuję w mousedown zdarzeniu, które "blokuje" te przeglądarki do elementu tak, że kursor myszy pozostaje na jakimkolwiek kursorem tego elementu jest .. bardzo ładny . Chrome nie obsługuje tej funkcji ani niczego podobnego, o czym wiem.

Obserwując mousemove i mouseUp zdarzeń na obiekcie dokumentu zamiast elementu, który został kliknięty, jestem w stanie jeszcze dostać najbardziej z setCapture (zachowań), w które można śledzić zdarzenia myszy, które dzieją się poza element, a nawet poza okno przeglądarki. Pozostaje mi jednak jeden problem, kursor myszy zmienia się w Chrome.

+0

Jeśli przejdziesz na przycisk, a następnie przeciągniesz myszką po stronie w różnych przeglądarkach, zobaczysz przyczynę problemu. W IE i FF ikona myszy pozostaje w tym, co zostało ustawione dla przycisku (ponieważ przycisk "przechwytuje" mysz, gdy przycisk jest wciśnięty). W Chrome mysz zmienia się podczas przeciągania. Być może użytkownicy Chrome tak lubią, bardziej prawdopodobne, że nigdy tego nie zauważyli lub nie obchodzą, ale dla mojego konkretnego użycia (przeciąganie w celu zmiany rozmiaru kolumny w tabeli) jest rozpraszający i wydaje się być "błędem" dla moich użytkowników. – eselk

Odpowiedz

0

Zazwyczaj umieszczam element nad wszystkim innym za pomocą zamierzonego kursora myszy w dół i usuwam go myszką w górę. Daleko od najczystszego podejścia, ale działa to dla mnie.

3

Wierzę, że szukasz Pointer Control Lock API, niedawno wprowadzonego sposobu, aby użytkownicy mogli sterować urządzeniem wejściowym użytkownika (jeśli jest to dozwolone). Wielkim przypadkiem jest hazard.

Bez bezpiecznego i obsługiwanego interfejsu API, zezwolenie stronom na przejęcie kontroli nad wprowadzaniem danych przez użytkownika byłoby całkiem katastrofalne (np. Kliknięcie i wymuszone pobranie złośliwego oprogramowania), więc jeśli chcesz "zablokować" kursor, najprawdopodobniej twoja jedyna opcja.

+1

Zaktualizuję moje pytanie, aby miejmy nadzieję, że stało się jasne - Chcę zablokować wygląd kursora (ikona, jeśli chcesz), nie ograniczając zakresu ruchu lub lokalizacji. Dokładnie to, co robi setCapture() w innych przeglądarkach, i zrobiło to przez 10 lat, zgodnie z moją wiedzą bez żadnych problemów związanych z bezpieczeństwem. – eselk

Powiązane problemy