这如何检测是否启用了Javascript

这如何检测是否启用了Javascript,javascript,html,onload,meta,Javascript,Html,Onload,Meta,我已经内置了一个需要部署的应用程序Asp.net C#应用程序。它是18个月前由一名承包商编写的,到目前为止从未部署过。登录页面上的代码隐藏文件包含以下代码: //if for some reason javascript is not enabled, redirect back to login page sb.AppendLine( "<head><meta http-equiv=\"refresh\" content=\"30;U

我已经内置了一个需要部署的应用程序Asp.net C#应用程序。它是18个月前由一名承包商编写的,到目前为止从未部署过。登录页面上的代码隐藏文件包含以下代码:

            //if for some reason javascript is not enabled, redirect back to login page
        sb.AppendLine( "<head><meta http-equiv=\"refresh\" content=\"30;URL=./?logout=1\"><link rel=\"Stylesheet\" href=\"./Styles/Main.css\" type=\"text/css\" /></head>" );
        sb.AppendLine( "<body onload=\"document.forms['loginForm'].submit()\">" );
//如果出于某种原因未启用javascript,请重定向回登录页面
某人加上一行(“”);
某人加上一行(“”);

我看不出这两个字符串是如何实现评论中所说的功能的,我甚至不确定它们实际上在做什么。是否应该有一个“if”语句围绕着这些内容?

在我看来,这就像是在使用javascript提交登录表单,如果不启用javascript,则不会发生这种情况,在这种情况下,meta标记将刷新页面并注销。


<meta http-equiv="refresh" content="30;URL=./?logout=1">
告诉浏览器在30秒内重定向到。/?注销=1

<body onload="document.forms['loginForm'].submit()">

查找名为loginForm的表单并提交它

如果页面在30秒内加载并提交表单,则一切都将按预期进行。如果没有,则假定未启用JavaScript。这是一个糟糕的解决方案。没有Javascript的用户必须等待30秒才能重定向。而且,通过缓慢的网络连接,很有可能出现误报

请尝试noscript标记:

<noscript><meta http-equiv="refresh" content="0;URL=./?logout=1"></noscript>

FYI,这个问题与C#或ASP.NET无关。唯一的C#是StringBuilder。问题真的是HTML(meta)和JavaScript(onload)。谢谢ben.:)很抱歉。更新了标签,现在应该正确分类了吗?