2009-06-04 17 views

Respuesta

7

No puede hacerlo, sin una solicitud posterior, me temo.

Hay explicaciones que se pueden encontrar al hacer una búsqueda en Google, la mayoría utiliza una llamada AJAX o un campo oculto que se popluated a través de JavaScript, que no se ejecutará si JavaScript está deshabilitado.

Si tiene que hacerlo, intentaré hacerlo con la primera solicitud del cliente, y guardaré una cookie (o algo similar), luego verificará el valor de la cookie en solicitudes posteriores. Esto supone que el usuario no habilita/deshabilita Javascript a menudo. También podría almacenar un valor en la sesión.

Yo espero que ayude

+0

Me esperaba algo más limpio, pero si esa es la única manera que se puede hacer ... Voy a almacenar en una sesión var y tiene un método de acceso para hacerlo más limpio. – Fermin

7

Page.Request.Browser.EcmaScriptVersion indicará lo ASP.NET piensa que es cierto. Esto supone que los BrowserCaps son correctos. Le da una indicación de primer paso que probablemente sea bastante cercana.

EDIT: Inicialmente malentendí la pregunta (habilitada frente a admitida). Puede utilizar el lado del servidor BrowserCaps para eliminar los UserAgents que no admiten JavaScript. A continuación, utilice una línea de secuencia de comandos en cada solicitud para determinar si se habilita a través de cookies:

// let the server know JavaScript is enabled via session cookie 
document.cookie = "js=1; path=/"; 

entonces detectar la existencia del lado del servidor:

HttpCookie cookie = HttpContext.Current.Request.Cookies.Get("js"); 
bool js = (cookie != null) && (cookie.Value == "1"); 

Una vez que se cierre el navegador esta cookie desaparecerá.

Cuestiones relacionadas