如何检测浏览器是否启用javascript st主页可以做出正确的响应?

xpo*_*ort 2 javascript asp.net-mvc asp.net-mvc-3

我正在使用Asz.net MVC 3和Razor开发一个站点.

_Layout.cshtml(母版页)中,我想根据浏览器是否启用javascript来设置逻辑.

制作这种逻辑的最简单方法是什么?

为简单起见,让母版页输出如下:

@if(....)//need to modify
{ <p>javascript enabled...</p>}
else {<p>javascript disabled...</p>}
Run Code Online (Sandbox Code Playgroud)

Fra*_*dal 7

如果您想阻止应用程序的访问,您可以使用类似的东西

<noscript>
    <meta http-equiv="refresh" content="0;url=../Controller/Error" />
</noscript>
Run Code Online (Sandbox Code Playgroud)


dec*_*eze 6

没有办法在服务器上找到它,因此在第一页加载之前无法找到.您可以做的最好的事情是将一些Javascript放入设置cookie的页面或向服务器发布AJAX响应,告诉它Javascript处于活动状态,因此您可以在后续页面请求中执行某些操作.即使除了第一页加载的明显问题之外,这也是一个糟糕的策略,因为用户可能会在此期间关闭Javascript,同时您的服务器仍然认为它是活动的.

优雅降级/渐进增强是这里的关键词.默认情况下,让您的页面假定没有Javascript处于活动状态并相应地执行操作,即在任何一种情况下都提供纯HTML.如果Javascript处于活动状态,请包含将"升级"网站功能的Javascript.让客户弄清楚Javascript是否正常工作,并为其提供工作方式.