gpt4 book ai didi

javascript - ASP.NET,检查 JavaScript 是否被禁用?

转载 作者:行者123 更新时间:2023-12-02 18:10:11 25 4
gpt4 key购买 nike

我不明白 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 相关的内容。

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

最佳答案

首先,参见Should I bother to develop for JavaScript disabled?/How important is graceful degradation of JavaScript? .

然后,客户端 Javascript 仅存在于客户端中,如果关闭,则不会触发任何客户端逻辑来显式检查任何内容。因此,在客户端从您的页面发送至少一个回复(无论是 GET/POST 查询还是 XMLHTTPRequest)之前,您无法知道这一点 - 即仅在该用户发出第二个请求(由您发送给他们的页面生成)之后,如果它们只是潜伏在周围,即使您将页面上的每个链接都设置为表单回复,也可能永远不会发生 - 它们可能会使用来自外部源的 URL。 CodeProject 文章链接自 Check if javascript is disabled?就是这种方法的一个例子。

出于这个原因(并且为了避免重复制作脚本版本和非脚本版本 - 这种做法在过去曾有过一些使用),最佳实践似乎已成为使页面和框架与 JavaScript 无关并只是警告用户与 <noscript>该页面如果相关,则可能无法完全发挥作用。

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

关于javascript - ASP.NET,检查 JavaScript 是否被禁用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19781549/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com