2013-01-29 22 views
6

Questa non è la stessa domanda di tutte le altre.Sto già impedendo a Chrome di accedere alla modalità di selezione del testo durante il trascinamento. (Modifica: voglio solo bloccare l'icona/aspetto, non limitare la posizione o il movimento, e solo tra mouse e mouseup) Il problema che vorrei evitare è che Chrome cambia il cursore durante il trascinamento, a qualsiasi cosa si trovi sotto il cursore (ie-i-beam mentre si ha il controllo dell'ingresso del testo, mentre si passa il collegamento ipertestuale, ecc.).Blocca il cursore del mouse durante il trascinamento in Chrome

IE e FireFox/Moz support element.setCapture() che chiamo nell'evento mouse, che "blocca" quei browser all'elemento in modo che il cursore del mouse rimanga a qualunque sia il cursore di quell'elemento .. molto bello . Chrome non supporta quella funzione, o qualcosa di simile, che io conosca.

Osservando gli eventi MouseMove e MouseUp sull'oggetto documento invece che l'elemento che è stato cliccato, sono in grado di ottenere ancora più del comportamento SetCapture(), in che posso monitorare gli eventi del mouse che accadono al di fuori del l'elemento, e anche al di fuori della finestra del browser. Tuttavia, mi rimane ancora un problema, il cursore del mouse cambia in Chrome.

+0

Se esegui il mouse su un pulsante e trascini il mouse sulla pagina in browser diversi, vedrai la radice del problema. In IE e FF l'icona del mouse rimane a ciò che è stato impostato per il pulsante (perché il pulsante "cattura" il mouse mentre il pulsante è premuto). In Chrome il mouse cambia mentre si trascina. Forse gli utenti di Chrome amano questo, più probabilmente non hanno mai notato o non si preoccupano, ma per il mio uso specifico (trascinando per ridimensionare una colonna in una tabella) questo è fonte di distrazione e sembra un "bug" per i miei utenti. – eselk

risposta

0

Solitamente posiziono un elemento su qualsiasi altra cosa con il cursore desiderato sul mouse verso il basso e rimuoverlo sul mouse. Lontano dall'approccio più pulito ma funziona per me.

3

Credo che stiate cercando il Pointer Control Lock API, un modo recentemente introdotto per gli utenti di controllare il dispositivo di input dell'utente (quando consentito). Il caso di grande utilizzo è il gioco.

Senza un'API sicura e supportata, consentire ai siti di assumere i controlli di input dell'utente sarebbe piuttosto disastroso (ad esempio download di clickjacking e malware forzato), quindi se stai cercando di "bloccare" il cursore, è probabile che questo sia la tua unica opzione.

+1

Aggiungerò la mia domanda per far si che sia chiaro: voglio bloccare l'aspetto del cursore (solo l'icona), non limitare l'intervallo o la posizione del movimento. Esattamente ciò che setCapture() fa negli altri browser, e ha fatto per oltre 10 anni, a mia conoscenza senza problemi di sicurezza. – eselk

Problemi correlati