我应该为禁用JavaScript的人而烦吗?

我觉得我的时间最好用于大多数人。

评论

您的时间最好花在建立工作网站上,其中包括尽可能地支持禁用的javascript。

我个人浏览了大多数禁用JavaScript的网站。

啊,@ TokenMacGuy,请问为什么?

即使您正在开发某些必须依靠javascript的内容,也需要记住,即使是无缺陷的javascript也可能使较小的设备/浏览器不堪重负。随着越来越多的设备具有浏览网页的能力,我认为网络开发人员将不得不减少对JavaScript的依赖而不是更多。

我们需要2016年的新答案

#1 楼

有一种称为渐进增强的Web设计哲学,您应该考虑这一点。这个想法是您建立一个可用的和可使用的基本站点,然后分层使用诸如jQuery和特定于浏览器的东西之类的增强功能来“增强”它。这样,您就可以获得一个适合所有人的网站,并且对大多数人看起来都很不错。

如果这不能说服您,请考虑使用不使用javascript的网站的其他原因:


它对SEO更友好。如果您的网站依赖JS来获取内容和链接,那么搜索引擎可能会忽略其中的很大一部分。
想象一下您是一家销售小部件的电子商务网站。现在,即使只有5%的客户禁用了javascript,这也可能造成5%的销售损失。失去顾客值得吗?
不要歧视残疾人。依靠javascript意味着您的网站无法访问,并且在某些情况下(例如政府/公共部门网站),您可能会通过歧视他人来触犯法律。


评论


是的,在英国,禁止歧视残疾人是法律,这是所有公共部门(政府资助)网站都必须遵守的规定。参见direct.gov.uk/en/DisabledPeople/RightsAndObligations/…和rnib.org.uk/professionals/webaccessibility/lawsandstandards/…

– Dan Diplo
2011年5月12日晚上10:10

依靠javascript并不意味着该页面不可访问。屏幕阅读器完全具有运行javascript的能力,并且在富Web应用程序中具有可访问性的标准。 w3.org/WAI/intro/aria.php

–拉塞尔·莱格特(Russell Leggett)
13年1月16日在7:44

此外,假设发生了某种情况并且您的JavaScript中断,或者最新的浏览器更新导致您的JavaScript代码无法正常工作,或者出现了其他“一次性”问题-您仍然希望用户能够正常使用您的网站。

–科迪
13年1月16日在7:57

@DanDiplo如果没有JavaScript就无法创建Web应用程序?这是否意味着由于缺乏对残疾人的支持,Web应用程序在英国是非法的?对盲人和聋人的支持又如何呢?如果我们真的想为像这样的人提供支持,那么网站将需要能够与盲文打印机或其他设备进行交互。我想在开发方面尽可能地支持残疾人,但是我们在哪里划清界限?

– AmadeusDrZaius
2014-09-19 18:15

@AmadeusDrZaius您必须意识到,此问题最初是在2011年得到回答的,此后在屏幕阅读器和搜索引擎以及它们支持JavaScript的能力方面发生了很多变化。我仍然认为,在很多情况下,使应用程序良好地降级仍然是有意义的,但是要承认,某些丰富的应用程序完全依赖JS。

– Dan Diplo
2014年9月20日19:18在

#2 楼

首先,我不同意那些坚持认为一切都应该在没有Javascript的情况下运行的人们。在很多情况下,最好使用最低公分母进行编码(例如,如果我的银行的站点需要Flash或类似的废话,我真的会很生气。)但是实际上,如今几乎每个人都启用了Javascript,如果使用得当,产生的站点可能非常壮观且有用! (我的意思是,让我们看看关闭Javascript时Google Maps的表现如何……)当下。永远不要让您的用户盯着页面半开,破损,而不会指出发生了什么问题。只是问问自己:我愿意花2分钟编写一条“此页面需要Javascript”消息还是每天收到10条来自用户的电子邮件,告诉我我的页面由于启用了Noscript而损坏了?

评论


“但是实际上,如今,几乎每个人都启用了Java脚本”……而那些不太了解自己的人。

–丹·雷(Dan Ray)
2010-12-13 22:01



确保考虑您的目标受众。如果您的目标是精通技术,安全意识强的人,则您的读者中绝大多数将运行NoScript。如果他们像我一样,当他们通过搜索链接访问某个站点并且该站点没有使用javascript时没有任何帮助时,我会立即单击“上一步”并查看列表中的下一个站点。

–赞·山猫
2011年9月30日20:41在

您还应该考虑网站的内容。一个专注于显示数据的网站不需要Javascript,但是我还没有看到没有Javascript的游戏就可以运行。

–DistantEcho
2013年1月16日9:00

我的银行实际上要求使用Java小程序来输入密码才能登录。大多数人连接到计算机上的这些键盘功能太老了。如果有人需要呕吐,我还有一些纸袋。

–迈克
13年7月8日在19:16

@迈克:然后换银行。如果我是你,我将不会相信他们我的钱。

– ybungalobill
15年6月20日在22:46

#3 楼

是的,您应该这样做。

如果您认为这需要付出额外的努力,那么您可能会采取其他方法。然后添加基于JavaScript的改进,Ajax效果等。如果支持/启用JS,它们将起作用,否则您的页面会正常降级。

请不要在以下位置开发页面:内容是通过JavaScript从数据库中提取的,
标记完全破裂了,因为元素被粘在一起并被JavaScript而不是CSS放置在正确的位置
如果没有JavaScript,导航和主体中的链接将无法运行(除非是ASP.NET之类的框架出于某种原因依赖JavaScript)

这与Web的精神和常识背道而驰。

PS由NoScript用户说出的话。

评论


因此,我不应该为99%的人启用javascript而提供功能,而是让自己崩溃了:要么不使用javascript,要么更糟,用两种方法都可以使它正常退化?我对关闭Cookie的感觉也一样。快到2011年了,您应该期望没有javascript的网站会瘫痪。

– Hardwareguy
2010-12-13 14:25

不,在2011年,我实际上希望JS损坏的网站最终得到修复。

–user8685
2010-12-13 14:32



我认为,决定一个网站是否值得启用javascript的责任在于,而不是让少数人向后弯腰,这是一个决定者。

– Hardwareguy
2010-12-13 14:35

好吧,如果您实际上依靠的是不需要JS的JS,那么您做错了。与正确开始做事的时间一样。

–user8685
2010-12-13 14:47

+1:首先在没有JS的情况下进行开发,然后添加增强功能。这是创建网站的正确方法。如果您的网站不适用于基本情况(像这样的简单浏览器可能会在您祖母使用的旧计算机,您使用的移动设备以及大型搜索提供商使用的搜索索引器上找到),那么您确实没有任何浏览器当您可能失去观看次数/销售时的想法。不使用JS进行开发并不困难。没有JS用户不需要所有华丽的动画和四舍五入的框,但是该站点可以更好地工作。

– PeterL
2010-12-14在0:43

#4 楼

作为开发人员,我不再担心1%的用户关闭Javascript。这太浪费时间了,开发时间也太昂贵了,以至于无法浪费这些废话。 AJAX节省了大量的带宽,直接节省了$$,从而使利润更高。如果我每100个用户失去一个或两个潜在的网站用户,那一个或两个失去的用户将花费比他们可能带来的潜在收入高得多的开发费用。

尝试关闭Javascript并登录Facebook,此后它变成了一个非常破烂的网站。如果对Facebook足够好,对我也足够。

评论


我完全同意你的看法。不过有一个小问题:如果用户属于这1%或2%的用户,则应该向用户提供某种警告消息。也许他无意中禁用了JS。

–拉杜(Radu Murzea)
13年5月28日在12:54

如果您的网站仅显示空白页,或者布局与禁用的JS完全分离,则您可能做错了。

–卡尔马留斯
2013年12月11日12:13



1000%同意,谁在乎那1%

– SuperUberDuper
16年2月24日在13:23

#5 楼

我个人在浏览时使用NoScripts Firefox插件,并鼓励其他人使用它。在我维护的所有家用PC上,NoScripts是我安装的软件的必需位之一。我用基本电子邮件和银行网站以及受欢迎的社交和视频网站的白名单进行了设置,并向他们解释了临时许可的工作方式。从该插件的流行程度来看,我认为有很多人在使用它。

至少我希望导航功能无需脚本即可工作。如果您有某些特定的东西,例如视频,需要脚本,那么很好,但是显示一个漂亮的占位符,上面写着“必须有脚本才能观看此视频”。在许多情况下,这会让我厌恶地离开该站点。更大的错误是禁用脚本后,部分网站或导航完全消失了。除非您强调某些东西丢失的事实,否则我什至没有注意到的好机会,因此会让您的网站以为它不存在。另外,全屏显示“此网站需要脚本”的消息不会使您走得太远,我需要先了解一些内容,然后才能充分信任您允许使用脚本。

最后,不要忘记浏览站点的不仅是台式机,而且移动浏览器越来越流行。尽管对移动JavaScript的支持越来越好,但是它并不是完美无缺的,因此,除非您要对所有不同的移动浏览器进行大量测试,否则我建议您以几乎没有脚本的方式搜索页面的移动版本。

#6 楼

绝对

没有JavaScript不能正常工作的网站应该明确通知用户。在没有JavaScript的情况下,应尽可能使其正常工作。在某些情况下这是不可能的,在AJAX层上构建的高度动态站点和远程访存就是其中之一。这并不意味着如果我禁用了JavaScript,就可以显示空白页。

平稳降级非常重要,它不仅适用于JavaScript,还适用于您编写的所有代码。有效的HTML标记,有效的CSS,所有内容的服务器端验证。

#7 楼

它取决于该站点以及将由谁使用。

该站点是公共站点还是Intranet或仅对某些客户可用的站点?您可能会遇到没有JavaScript的用户。如果只供客户使用,您能否告诉他们您仅支持启用JavaScript?如果没有JavaScript,为搜索引擎进行优化就容易得多。

该网站是否会在移动浏览器上使用?移动浏览器通常不支持JavaScript或对JavaScript的支持不佳。

您还应该认识到JavaScript可能会使屏幕阅读器难以处理您的网站,并且还有其他潜在的负面可访问性注意事项。

基于文本的浏览器(例如lynx)的用户也几乎没有JavaScript支持。

您必须查看您的站点和受众,并确定是否需要支持禁用JavaScript的用户。您还必须查看是否甚至可以不使用JavaScript。如果您要制作高级Web应用程序,并且需要网络摄像头和麦克风支持之类的东西,那么可能不使用JavaScript是不可能的。

如果您决定需要支持没有JavaScript的用户,那么仍然可以使用JavaScript。您应该使没有它的网站仍然可以正常运行。这称为渐进增强,如果没有JavaScript支持,它应该适当地降级。 />

#8 楼

我可以推荐“ A List Apart”中的一篇文章吗?:

使用JavaScript进行渐进增强


...我们已经回顾了实现渐进的必要思想JavaScript的增强功能以​​及通过其实现的几种技术。我们还涉及了不干扰脚本的概念,并学到了一些有关如何管理CSS和JavaScript的相互关系的知识。有用的工具,例如JQuery(或Prototype,或您选择的任何JavaScript框架),事后应用JavaScript行为确实很简单。具有JavaScript或至少非常有限的JavaScript支持。更不用说针对WCAG和第508条规定(非美国人群可及性)的规则#1是,视线不依赖于脚本语言来发挥作用。如果每次进行更改时都会重新加载页面,但是它仍然允许我进行更改,它可以正常工作。基础站点顶部的AJAX层使我无需重新加载页面即可执行相同操作。

我看到不支持JavaScript用户的主要原因如下: >
为残障人士提供支持(屏幕阅读器,备用输入设备等)
为有安全意识的人士提供支持:让我们面对现实,这是坏人使用JavaScript进行令人发指的事情,因此最简单的解决方案是摆脱JavaScript
是在没有插件的情况下禁用广告的最简单方法
移动和嵌入式设备
用于在无头服务器上下载工具的命令行浏览器
搜索引擎蜘蛛仅遵循真实链接- JavaScript会混淆它们

请,如果您要在站点上要求Cookie和JavaScript使其正常运行,那么请进行尽职调查,以避免以下问题:


跨站点脚本攻击
第三方用户跟踪
通过DOM操作进行黑客入侵/破坏行为
网络钓鱼(如果脚本可以访问您的DOM,则可以将页面上的任何信息发送到从中加载的服务器) />(这只是简短列表)

如果解决方案不是那么困难,为什么不这样做呢? ,别忘了支持合理的键盘导航。

评论


使用JavaScript可以符合WCAG:stackoverflow.com/q/8383151/404623

–rink.attendant.6
2015年6月5日19:04

#9 楼

在这样的站点上,您会发现许多开发人员告诉您如何禁用Javascript,因此您应该支持渐进式增强。实际上,有5%的人禁用了Javascript,其中90%是开发人员和其他技术极客,他们不是普通大众。大多数主要站点不支持渐进增强。您是否尝试过不使用Javascript的Facebook?他们基本上说走开。

#10 楼

<5%的用户禁用了javascript

根据BrowserStatistics,在2008年,只有5%的用户关闭了JavaScript。趋势一直在下降,因此可以非常安全地假设现在接近2011年,这个数字要小得多。

逐步降级

您的网站永远都不会损坏-无论用户打开或关闭JS。即使只是显示一条消息,表明您的网站需要打开javascript信息,它也是如此简单,但您仍应确保您的网站对那些选择的少数人以可接受的,不间断的方式呈现和运行。非JS用户?通常:不会。

普通开发人员无需使用其他语言创建非JavaScript版本。但是,如果知道您的客户有反JavaScript需求,那么您显然会被迫迎合它。 (甚至GMail都具有非JS版本)

#11 楼

我的想法:

使用javascript总是会增加攻击的范围,不仅对您,而且对您的客户-我认识的几乎每个人都使用NoScript浏览,其中包括非技术人员。 />
如果我看到一个严重使用javascript的在线购物网站,我不会从他们那里购买。我总是首先禁用javascript进行浏览,如果网站正常降级,我可能会感兴趣。如果只是坏了,我通常会以为程序员也没有能力提供一个安全的商店平台。

它趋向于减慢一切-尽管离主要城市我的宽带很近速度足够慢,而不必等待加载一些市场营销想法。如果一个网站要花费5秒钟以上的时间来加载基本内容,那么除非我有真正的需求,否则我不会打扰。

#12 楼

仅在关键任务功能上

通常,“优雅地降级”是一个好主意。但是,我将只专注于Web应用程序的关键任务部分,以解决JavaScript可能不可用的情况。

如果只是“钟声和口哨声”效果,那么就不要烦。故意使用JavaScript进行冲浪的人将不得不做一个简单的体验(嘿,这是他们不使用Js的选择)

#13 楼

这里的大多数答案似乎都以非必要或hacky的方式突出了对使用JavaScript的标准网站的批评。但是网络应用程序呢?如果没有JavaScript,有很多关键功能甚至无法远程实现。甚至像文本区域下的基本单词计数器之类的简单操作,或基于对另一个答案的回答启用/禁用其他形式的问题。在这种情况下,为多数人建立并为少数人优雅地降级是否不合理?特别是如果您知道您的用户群是非技术性的并且不太可能禁用JS的话?

评论


如果页面的目的是要做一些需要JavaScript的事情,那么完全有必要这样做。但是,如果页面的目的是允许人们允许人们为其Blu-Ray播放器下载软件,则该表单中用户输入完整或部分型号,并通过POST提交,并接收页面列表合适的文件及其支持的模型可能与Javascript可以完成的功能差不多。

–超级猫
2014年7月20日19:05

#14 楼

要考虑的事情:

AFAIK,搜索引擎蜘蛛不喜欢Javascript。您应该仅具有SEO的基本内容和导航,而无需使用Javascript。通常,用HTML而不是Java来实现最好的效果。网络变得越来越具有敌意,并且NoScript之类的工具可能会变得越来越流行。或者,可能会有更多的人使用浏览器功能较弱的设备,尽管对于某些Android手机而言,其价格并不昂贵,但这似乎不太可能。正常降级可能是该站点未来发展的一种方式。

#15 楼

是。

我不会谈论使用NoScript,嵌入式设备等的人。可以衡量他们的份额,然后您可以决定收入是否由于烦人而减少,例如0.5%的用户值得为他们实施解决方案。

但是还有其他原因要遵循渐进增强原则,而且它们通常更重要。


100%用户无法在脚本加载前执行javascript。如果网站可以在没有js的情况下运行,则可以为首次访问者,缓存为空的访问者以及js代码更新后的所有访问者更快地加载。
无需js即可运行的站点更加可靠。破坏网站的Javascript错误是一场架构梦。有关此问题和相关问题的更多信息:http://isolani.co.uk/blog/javascript/BreakingTheWebWithHashBangs
坚持渐进增强功能比实施SEO友好的纯JavaScript网站要容易得多。
为不需要javascript的网站编写自动化测试会更容易。

遵循渐进增强原则实际上很容易,为什么不遵循它呢?

#16 楼

取决于一个问题的答案:

“为禁用Javascript的用户提供支持的成本是否大于或等于因不支持这些用户而损失的资金?”

假设您的网站在需要重建之前的使用寿命为3年,为“富客户”的构建成本为30,000英镑,而您再增加10,000英镑以支持非JavaScript用户(假设其中有5% of)

如果缺少的5%用户所花的费用超过10,000英镑,请执行此操作。如果他们不这样做,除非您在法律上有此要求,否则请不要这样做。

#17 楼

不,您不应该

有两个例外:


您要搜索引擎可索引的内容。 (这并不意味着它必须看起来不错-只要链接有效并且内容是可发现的。) (默认情况下,某些BlackBerries禁用了JS,而许多非智能手机通常根本没有。)

对于台式机和触摸电话网站,Javascript提供了令人惊讶的丰富用户体验。所有顶级网站都有大量使用AJAX和Javascript的原因。当前所有的浏览器都支持它。拥抱它吧!

作为过去冒汗使整个网站在禁用Javascript的情况下工作的人,我可以向任何人保证,他们最终都会以99%的体验降级,以便取悦于1%。

只需粘贴一个NOSCRIPT标记即可告诉那些用户启用Javascript。他们会习惯的。

评论


我还要再添加一个例外:您需要确保您的网站没有安全漏洞,这些漏洞仅在禁用Javascript时才会显现出来。

– Kyralessa
2010年12月14日的1:40

#18 楼

这在很大程度上取决于您的目标市场。如果您的目标市场是非技术类市场,则可以很安全地忽略javascript禁用功能。但是,如果您追随技术人员,那么,我所知道的大多数人都禁用了javascript ...除非您希望一小部分支持javascript的技术人员,否则您将需要支持它们。少数,我让javascript在我的机器上运行)。 :-)

#19 楼

禁用JavaScript非常重要,您应该支持它。色情行业因使用流氓弹出窗口向用户发送垃圾邮件而臭名昭著。如果您导航到该地区,则非常需要禁用JavaScript。

您是否真的要强迫用户在从有信誉的站点访问应用程序时不断打开/关闭JavaScript?

#20 楼

您为什么要使用JavaScript?
对于任何有用的东西来说都是不必要的。
如果需要,可以添加它以获得愚蠢的效果,但是让它适合我们坐在新的但速度缓慢的上网本/ iPod /任何东西上通过启用JavaScript可以更快(更安全)地工作!