2009-06-04 6 views
9

클라이언트 브라우저가 ASP.NET 코드에서 자바 스크립트를 사용할 수 있는지 확인 할 수 있습니까?자바 스크립트가 활성화되어 있는지 확인 서버 측 ASP.NET

컨트롤의 PreRender 또는 PageLoad에서 이상적으로 이것을 수행하여 내가 어떻게 보이게 할 것인지 바꿀 수 있기를 바랬습니다.

모든 제안 사항, 해결 방법 등을 알려 주시면 감사하겠습니다.

답변

7

후속 요청을하지 않아도 그럴 수 없습니다. 두려워합니다.

Google에서 검색을 수행하면 대부분의 AJAX 호출 또는 일부 자바 스크립트를 통해 숨어있는 숨겨진 필드를 사용할 수 있습니다. 자바 스크립트를 사용하지 않으면 실행되지 않습니다.

만약 당신이 그것을 할 필요가 다음 나는 클라이언트에서 매우 첫 번째 요청에 그것을 시도하고 쿠키 (또는 somethign 비슷한) 저장 후 후속 요청에 쿠키 값을 확인하십시오. 이것은 사용자가 Javascript를 자주 활성화/비활성화하지 않는다고 가정합니다. 세션에 값을 저장할 수도 있습니다.

나는 그

+0

내가 청소기 뭔가를 기대했다 서버 측에서 사용 가능 여부를 확인하는 유용한 것이라고 생각하지만이 할 수있는 유일한 방법이 있다면 ... 난에 저장할 수 있습니다 세션 var 및 청소기를 만드는 접근 자 메서드가 있습니다. – Fermin

7

Page.Request.Browser.EcmaScriptVersion 무엇 ASP.NET 생각하는 것은 사실이다 나타냅니다 도움이되기를 바랍니다. 여기서는 BrowserCaps가 올바른 것으로 가정합니다. 그것은 아마도 당신에게 아마도 아주 가까운 첫 번째 패스 표시를 제공합니다.

편집 : 처음에는 (활성화 또는 지원) 질문에 대한 오해가있었습니다. BrowserCaps 서버 측을 사용하여 이 아닌 UserAgent를 제거 할 수 있습니다.은 JavaScript를 지원합니다. 그런 다음이 쿠키를 통해 사용할 수 있는지 확인하려면 각 요청에 스크립트의 한 줄을 사용합니다 : 그들은 브라우저를 닫으면

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

이 쿠키가 사라집니다 :

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

은 그런 존재의 서버 측을 감지합니다.

관련 문제