检查Javascript是否已启用服务器端ASP.NET

Fer*_*min 9 javascript asp.net

是否可以检查客户端浏览器是否从ASP.NET代码启用了javascript?

我希望理想情况下在PreRender控件或PageLoad上执行此操作,以便我可以更改它们的外观.

任何建议,解决方法等将非常感激.

Lew*_*wis 7

如果不做出后续请求,我不能这样做,我担心.

有一些解释可以通过在Google上进行搜索找到最多使用AJAX调用或通过某些javascript弹出的隐藏字段,如果禁用Javascript则无法运行.

如果你必须这样做,那么我会尝试在客户端的第一个请求中执行它,并保存一个cookie(或类似的东西),然后在后续请求中检查cookie的值.这假设用户不经常启用/禁用Javascript.您还可以在会话中存储值.

我希望有所帮助


mck*_*mey 7

Page.Request.Browser.EcmaScriptVersion将指出ASP.NET认为是真的.这假设BrowserCaps是正确的.它确实给你第一次通过指示,可能非常接近.

编辑:我最初误解了这个问题(启用与支持).您可以使用BrowserCaps服务器端清除那些支持JavaScript的UserAgent .然后在每个请求上使用一行脚本来确定它是否通过cookie启用:

// let the server know JavaScript is enabled via session cookie
document.cookie = "js=1; path=/";
Run Code Online (Sandbox Code Playgroud)

然后检测存在服务器端:

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

一旦他们关闭浏览器,这个cookie就会消失.