如何检测Javascript是否已启用

时间:2014-03-13 00:20:54

标签: 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;URL=./?logout=1\"><link rel=\"Stylesheet\" href=\"./Styles/Main.css\" type=\"text/css\" /></head>" );
        sb.AppendLine( "<body onload=\"document.forms['loginForm'].submit()\">" );

我无法看到这两个字符串是如何完成评论所说的完成的,我不确定他们甚至在做什么。是否应该有一个“if”声明?

2 个答案:

答案 0 :(得分:1)

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

告诉浏览器在30秒内重定向到./?logout=1。

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

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

如果页面加载并且表单在30秒内提交,则一切都将按预期工作。如果没有,则假定未启用JavaScript。这是一个糟糕的解决方案。没有Javascript的用户必须等待30秒才能被重定向。并且在网络连接缓慢的情况下存在误报的可能性。

尝试使用noscript标签:

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

答案 1 :(得分:0)

我认为它使用javascript来提交登录表单,如果未启用javascript则不会发生这种情况,在这种情况下,元标记将刷新页面并注销。