我目前正在构建一个项目,我想使用一些简单的javascript - 我知道有些人禁用它来阻止XSS和其他东西.我是不是该...
a)使用简单的javascript,那些禁用它的用户会丢失
b)不要使用简单的javascript,启用它的用户必须再点击一下
c)编码启用了javascript和禁用javascript的功能
我不确定网络总是在变化,你推荐什么?
优雅地降级 - 确保网站在没有JavaScript的情况下工作,然后为启用了JavaScript的用户添加铃声和口哨声.
其他人都做出了很好的评论,但还有一些其他的考虑因素.
有时,该网域可能会变得无法访问,而您的网站仍然可以访问.在这种情况下让您的网站完全堆叠自己并不好.
出于这个原因,应该避免使用谷歌跟踪器中存在的"阻止"脚本(即:文档内联文档),或者至少应该尽可能地在页面中使用,以便页面呈现域名是否为超时请求.
如果您碰巧通过故意或偶然的方式从破坏/恶意服务器提供JS,只需通过提供一个脚本来暂停页面呈现,该脚本只需在发送所有标头后调用"sleep(forever)".
与上述问题一样,有时客户端环境可能会阻止某些脚本源,无论是用户选择还是其他原因(即:浏览器安全性满意,奇怪的防病毒/反恶意软件应用程序).最受欢迎和可控制的实例是NoScript,我自己也偏执地阻止了一些流行的跟踪/广告服务(一些代理服务器也会这样做).
但是,如果某个站点设计不当,则加载一个脚本失败仍会执行依赖于该脚本存在的代码,这会导致错误并阻止一切正常运行.
我的建议是:
使用Firebug
使用NoScript并阻止所有内容 - >请参阅网站仍然有效
启用您不能做任何事情的核心站点脚本 - >请参阅站点仍然有效,而firebug不会抱怨.
启用第三方的东西 - >看到网站仍然有效,萤火虫没有抱怨.
可能会出现许多其他并发症,但满足上述2应解决其中大多数问题.只是假设,无论出于何种原因,构成页面的一个或多个资源都可以自发地消失(它们一直都在消失),并且您希望页面尽可能友好地"存活"这个问题.对于可能持续<10秒的问题,它不是那么糟糕,刷新页面及其固定,但如果它可能发生问题,并且severley一次阻碍可用性一小时或更长时间.
从本质上讲,不要考虑"哦,没有javascript的边缘案例用户",尝试更多地考虑"它真的很容易出错,并让我们所有的用户都破坏了javascript.哎哟!让我们尝试做到这一点,当我确实发生这种情况时,我们真的不会自己管它们"
(我已经看到IE更新推出并为整个浏览器提供软件javascript,直到编写脚本的人找到解决方法.失去所有IE客户并不是件好事)
:set sarcasm
:set ignoreSpelling
:set iq=76
没人关心瞄准Niché市场吗?所有那些有趣的螺旋桨头都在他们令人讨厌的愚蠢的linoox cpus中运行lynx,把所有的时间花在intarwebs冲浪上,因为他们没有更好的生活或金钱?疯狂的安全偏执狂书呆子禁用javascript左右因为他们不喜欢它?
现在没有人想要他们作为您的主要客户吗?Niché市场.Pfft.谁在乎!
:set nosarcasm
"优雅地降级"通常是最好的答案.但是很多网站现在都依赖于JS - 尤其是AJAX.
考虑您的受众.如果您的网站针对的是非常精通技术的人,他们没有javascript的可能性很小,您可以通知他们在必要时打开它.
如果您的受众群体可能使用移动设备访问您的网站,请不要认为他们拥有JavaScript,甚至不认为他们正确支持CSS.目的是优雅地降级到裸HTML.
我从我的问题中学到了很多东西:那些不使用Javascript的人是什么
使用Ajax和Web 2.0.这是网络的发展方式,非常棒.Stackoverflow难道不是很好吗?关闭你的Javascript并不是很好.
一旦你的网站准备就绪,但在你让它上线之前,用Javascript关闭测试它,只需添加你认为需要的任何东西,使你的网站显示并运行它们.您只需要添加您认为必不可少的内容.
请记住,除了视觉上受到影响的人使用屏幕阅读器外,其他人都选择关闭javascript.如果他们想要使用您拥有的所有功能,他们还可以选择信任您的网站并为您的网站启用javascript.这真的是他们的选择.
正如其他人所说,它应该"优雅地降级".
在其他作品中,它必须在没有Javascript(句点)的情况下工作.它不一定运作良好.那些已经禁用Javascript的人知道导致并接受它们的限制.但如果你想卖给他们一些东西,重要的是他们仍然可以买到它.
在我正在设计的网站上,有一个基于javascript的弹出菜单.关闭Javascript后,所有弹出按钮都会打开.它看起来不像JS那样酷,但它仍然可以用来浏览网站.
这取决于您需要多长时间来开发和维护这两种解决方案,以及非JavaScript用户对您的价值.
我的电子商务网站严重依赖于javascript,在一年半的时间里,我没有收到任何投诉.事实上,自从我开始以来,我认为我没有看到任何日志中禁用javascript的单个访问者.这并不意味着他们不在那里.它只是意味着(a)它们是一个很小的百分比,(b)它们对我卖的东西不感兴趣,或者(c)上述两种情况.