2010-04-25 13 views

risposta

4

sto usando il TinyMCE Editor JavaScript

Dal momento che si desidera modificare il comportamento lato client a seconda del client, migliore è quella di gestire questo sul lato client piuttosto che il lato server.

Nel mondo CSS, è possibile agganciare lo media type per applicare gli stili a seconda del supporto utilizzato. I tipi di file multimediali più utilizzati sono lo schermo (di solito PC), il palmare (in genere i cellulari) e la stampa (per la pagina stampata).

Si può fare uso di esso per nascondere l'editor semplicemente la seguente regola nel CSS:

@media handheld { 
    #elementIdContainingEditor { display: none; } 
} 

È anche possibile specificare i fogli di stile separati a seconda del supporto utilizzato.

<link rel="stylesheet" href="default.css" media="screen"> 
<link rel="stylesheet" href="mobile.css" media="handheld"> 

Se il problema è in realtà più che non funziona perché JavaScript è disabilitato sul particolare client, quindi è meglio avere per eseguire il particolare CSS quando JS è disattivato:

<noscript><style>#elementIdContainingEditor { display: none; }</style></noscript> 

Or viceversa, inizialmente nasconderlo e poi mostrare quando JS è abilitato:

<script>document.getElementById('elementIdContainingEditor').style.display = 'block';</script> 

Questo è più affidabile rispetto annusando l'agente nel lato server.

0

L'unica cosa diversa è l'agente utente. Ricercare gli agenti utente per i browser che si desidera rilevare. (Non sei sicuro del motivo per cui ti interesserebbe)

Puoi anche aggiungere qualche javascript per eseguire qualcosa sul browser?

8

Utilizzo di request.getHeader("User-Agent"). Here è un elenco di browser mobili e dei rispettivi agenti utente.

0

Utilizzare l'User-Agent nell'intestazione della richiesta HTTP.

request.getHeader("User-Agent") 
23

Ho usato il UAgentInfo.java classe potete scaricare qui (http://code.google.com/p/mobileesp/source/browse/Java/UAgentInfo.java):

private boolean isRequestComingFromAMobileDevice(final HttpServletRequest request){ 

    // http://www.hand-interactive.com/m/resources/detect-mobile-java.htm 
    final String userAgent = request.getHeader("User-Agent"); 
    final String httpAccept = request.getHeader("Accept"); 

    final UAgentInfo detector = new UAgentInfo(userAgent, httpAccept); 

    return detector.detectMobileQuick(); 
} 

Il UAgentInfo classe ha un sacco di metodi per rilevare i dispositivi particolari come bene. Basta sostituire detector.detectMobileQuick() per, ad esempio, detector.detectIphoneOrIpod(), detector.detectKindle(), ecc.

AGGIORNAMENTO: Se si utilizza Spring, è possibile utilizzare la sua implementazione nativa. Ecco un esempio: http://spring.io/guides/gs/device-detection/

+0

qui è: http://search.maven.org/#search|ga|1|com.github.autograder – PaulG

0
public void doGet(HttpServletRequest request, 
       HttpServletResponse response) throws ServletException, IOException { 
    if(request.getHeader("User-Agent").indexOf("Mobi") != -1) { 

    } else { 

    } 
} 
Problemi correlati