繁体   English   中英

ASP.NET,检查javascript已禁用?

[英]ASP.NET, check for javascript disabled?

我不明白ECMAScript是如何工作的。 检查MSDN和其他论坛它没有告诉我们哪个版本或值等于javascrpt。

if (!Request.Browser.JavaScript)
 //Do Something.

但是,我得到了一个绝对的警告,并建议我使用ECMAScript。

System.Web.HttpBrowserCapabilities myBrowserCaps = Request.Browser;
if (((System.Web.Configuration.HttpCapabilitiesBase)myBrowserCaps).EcmaScriptVersion.Major < 1)
//Does not have Javascript. Do something.

但是,我尝试了开启/关闭我的JavaScript。 不知怎的,这个功能没有被解雇。 我怀疑某些值属于javascript。 但是,我无法找到任何与value == javascript相关的内容。

我明白我可以然后使用元标记执行重定向。 但我希望所有这些代码都能在服务器上执行。

首先,请参阅我是否应该为JavaScript禁用开发? / JavaScript的优雅降级有多重要?

然后,客户端Javascript仅存在于客户端中,如果关闭,则不会触发客户端逻辑以明确检查任何内容。 所以你不能知道它,直到客户端从你的页面发送至少一个回复(无论是GET / POST查询还是XMLHTTPRequest) - 也就是说,只有在你发送它们的页面生成的那个用户的第二个请求之后,即使您将页面上的每个链接都作为表单回复,他们也可能永远不会出现,他们可能会使用来自外部来源的网址。 Check中链接的CodeProject文章是否禁用了javascript? 是这种方法的一个例子。

出于这个原因(并且为了避免努力重复制作脚本和noscript版本 - 过去看到一些用法的实践),最佳实践似乎已经变得使页面和框架与JavaScript无关并且只是用<noscript>警告用户<noscript>如果页面相关,页面可能无法完全正常运行。

例如,Sharepoint就是这样 - 在禁用JS的情况下,页面顶部会出现警告,例如没有滚动条,编辑被完全禁用。 由此得出的结论是,ASP.NET控件(SP大量使用)并不是设计为在基本显示之外的功能,首先禁用JS。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM