是否可以检查客户端浏览器是否已从ASP.NET代码启用了javascript?
我希望理想情况下在PreRender控件或PageLoad上执行此操作,以便我可以更改它们的外观。
任何建议,解决方法等都会非常感激。
答案 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