2012-03-08 4 views
5

parte della mia pagina richiede un doppio clic, che ha l'effetto indesiderato che a volte l'utente mette inavvertitamente in evidenza parte del testo sulla pagina.Arresta il testo HTML in corso di evidenziamento

È davvero disordinato, ma esiste un modo efficace per impedire che ciò accada, se non utilizzando immagini anziché testo?

Grazie

risposta

2

Come @arunes suggerito, si può fare questo con i CSS per la maggior parte dei browser. Tuttavia ho letto che questo non funziona con IE 6-8 (almeno). Quindi, per questo, potrebbe essere necessario qualcosa di simile:

document.getElementById("divDoubleClick").onselectstart = function() { return false; }; 
2

Questo funziona per me

Come suggerito mettere gli stili CSS in

body, div 
{ 
    -webkit-touch-callout: none; 
    -webkit-user-select: none; 
    -khtml-user-select: none; 
    -moz-user-select: -moz-none; 
    -ms-user-select: none; 
    -o-user-select: none; 
    user-select: none; 
} 

anche aggiungere questi per consentire la selezione all'interno di campi di modulo

input, textarea, .userselecton 
{ 
    -webkit-touch-callout: text; 
    -webkit-user-select: text; 
    -khtml-user-select: text; 
    -moz-user-select: text; 
    -ms-user-select: text; 
    -o-user-select: text; 
    user-select: text; 
} 

Nota il -moz-none che è necessario o il reenable per gli input non funziona.

per IE aggiungo

<script type="text/javascript"> 
    window.addEvent("domready", function() 
    { 
     document.addEvent("selectstart", function(e) 
     { 
      if ((e.target.tagName == "INPUT") || 
      (e.target.tagName == "TEXTAREA") || 
       (e.target.hasClass("userselecton"))) 
      { 
       return true; 
      } 
      return false; 
     }); 
    }); 
</script> 

Questo non solo impedisce la selezione di sfondo del testo, ma consente la selezione su InputFields e ed elemento si mette la classe userseleton su.

+0

Grazie informazioni utili! – CompanyDroneFromSector7G

Problemi correlati