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

时间:2009-06-04 15:00:39

标签: asp.net javascript

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

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

任何建议,解决方法等都会非常感激。

3 个答案:

答案 0 :(得分:7)

你不能这样做,如果没有做出后续的请求,恐怕。

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

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

我希望有帮助

答案 1 :(得分: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=/";

然后检测存在服务器端:

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

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

答案 2 :(得分:0)

我认为这篇文章对于从服务器端检查javascript启用是否有用 check if javascript is enabled from server side