脚本禁用重定向

时间:2012-03-03 21:08:51

标签: javascript asp-classic

我有一个索引页面,可以在进入“登录”页面之前检测用户是否启用了JavaScript和Cookie。如果两者都已启用,登录页面将仅显示登录表单。

我首先在索引页面上设置了一个cookie。如果在登录页面上读取cookie,则启用cookie。如果JavaScript被禁用,它会使用查询字符串重定向到登录页面,让我知道它失败了。

我现在的问题是,即使启用了脚本,重定向也会继续触发。我需要在这里更改什么?

<html>
<head>

<%
    response.cookies("enabled")="1" 
%>

<noscript>
    <%response.redirect("http://www.test.com/test/login.asp?noscript=true&settingsCheck=1")%>
</noscript>
<%
    response.redirect("http://www.test.com/test/login.asp?&settingsCheck=1")
%>
</head>
<body>

</body>
</html>

1 个答案:

答案 0 :(得分:1)

NOSCRIPT是客户端代码。 <% ... %>执行服务器端。因此,无论周围标记如何,NOSCRIPT标记内的代码仍会在服务器上进行评估。

您可以使用META刷新标记来完成客户端上的重定向。这不需要脚本,因此可以放在NOSCRIPT标记内。这是valid HTML 5 markup

<noscript>
    <meta http-equiv="refresh" content="0; url=http://www.foo.com?script=false">
</noscript>
<script>
    window.location.href = "http://www.foo.com?script=true";
</script>