如果浏览器不支持asp.net MVC中的javascript,则重定向到页面

Pra*_*sad 2 javascript browser asp.net-mvc

如何检查浏览器是否支持javascript?

如果用户的浏览器不支持javascript,我需要将用户重定向到通知页面.我如何在我的asp.net mvc(C#)应用程序中执行此操作?

什么是在asp.net mvc中处理这个问题的最佳方法?

我测试的HTML:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    <title>Stack Overflow</title>
    <link rel="stylesheet" href="http://sstatic.net/so/all.css?v=6230">
</head>
<body>
    <noscript>
        <div id="noscript-warning">Stack Overflow works best with JavaScript enabled<img src="http://pixel.quantserve.com/pixel/p-c1rF4kxgLUzNc.gif" alt="" class="dno"></div>
    </noscript>        
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

bob*_*nce 6

哇所有-1.嗯,好吧......它可能不是有效的,但是meta-in- noscripthack(因为每个人已经发布并被投票选出)真的做你想要的唯一方法.但:

如果用户的浏览器不支持javascript,我需要将用户重定向到通知页面

我想你想要的不是你需要的.No-JS重定向对于可用性/可访问性来说是可怕的.请不要这样做.

考虑像SO这样的方法:保持用户在同一页面上,但只包括脚本不可用的页面上通知:

<noscript>
    <div id="noscript-warning">Stack Overflow works best with JavaScript enabled</div>
</noscript>
Run Code Online (Sandbox Code Playgroud)

如果必须的话,您可以使用CSS将其设置为大而红,并显示在页面的其余部分之上.

你也可以更具体.通常,您不仅需要JavaScript,还需要支持无处不在的某些脚本功能.例如,IEMobile(8之前版本)确实有JavaScript,但是已经阻止了DOM支持,这会阻止你运行大多数现代脚本.或者您可能依赖于HTML5相关的界面,而这些界面并非如此.在这种情况下,您可以嗅探客户端并手动设置通知的可见性:

<head>
    <style type="text/javascript">
        #scriptwarning {
            position: absolute; z-index: 9;
            top: 25%; left: 25%; width:50%; height: 50%;
            color: red; background: white;
            border: dashed red 1px;
        }
        body.jsok #scriptwarning { display: none; }
    </style>
</head><body>
    <script type="text/javascript">
        // Sniff capabilities in whatever way is necessary
        //
        if ('featureWeWantToUse' in window) {
            document.body.className= 'jsok';
        }
    </script>
    <div id="scriptwarning">
        JavaScript is disabled, or too rubbish on your browser to do what we want.
        See the <a href="browsersupport.html">supported browsers</a> page for more information.
    </div>
</body>
Run Code Online (Sandbox Code Playgroud)