检测服务器端启用的Javascript

时间:2011-07-18 13:53:55

标签: c# javascript asp.net

我已经看到了一些方法来检测是否启用了javascript。我有一个独特的情况。 Global.asax处理所有抛出的错误

protected void Application_Error(Object sender, EventArgs e)
{
  //email development team
}

最近,我在他们的机器上遇到了人们禁用javascript的问题。这些是公司机器,不允许他们这样做。我可以在母版页上添加一些javascript检测,但我不知道如何将其转换为上面的“全部捕获”方法。

如果在此场景中客户端上是否启用了javascript,我该怎么做?

3 个答案:

答案 0 :(得分:4)

您可以使用javascript更改页面onload事件中隐藏字段的值。

如果您在回发时获得新值,则启用javascript

答案 1 :(得分:2)

好吧,我认为你的特定任务不需要通用的js检测。我建议您添加<noscript>标记,并将图像放入该标记。如果有人请求该图像,那么您可能想要执行您所讨论的错误逻辑。

如果启用了scrips,我会尝试找到一些协作浏览器不会获取<noscript>标记内部内容的资源。

修改 有关详细信息,请参阅此previous stackoverflow post。直觉这一定是真的,但在这背后有不止一个意见是很好的。

哦,我刚刚看到你正在使用 ajax +等待n的方法。我强烈建议不要这样做,看看你如何容易得到误报 - 这个当用户快速离开被困页面或发生某种临时网络延迟时,可能会发生这种情况。

虽然您不感兴趣,但这种方法还具有优雅降级的额外好处。诱杀陷阱图像也可能向用户显示如何打开脚本。 :)

答案 2 :(得分:1)

这为您的需求提供了彻底的解释

http://www.codeproject.com/KB/aspnet/JavaDetectService.aspx