【发布时间】:2010-05-20 20:04:15
【问题描述】:
我有兴趣使用 JavaScript hashchange 事件来监控 URL 片段标识符的变化。我知道Really Simple History 和为此的jQuery 插件。但是,我得出的结论是,在我的特定项目中,增加另一个 JS 文件的开销并不值得。
我想做的是走“渐进式增强”路线。也就是说,我想测试访问者的浏览器是否支持 hashchange 事件,并编写我的代码以使用它(如果它可用),作为增强而不是核心功能。 IE 8、Firefox 3.6 和 Chrome 4.1.249 都支持它,这约占我网站流量的 20%。
那么,呃……有什么方法可以测试浏览器是否支持特定事件?
【问题讨论】:
-
仅供参考,您正在寻找的短语不是“渐进式增强”而是“优雅降级”。渐进式增强是指您让所有用户都可以访问您的网站,但向更具体的用户组添加功能(启用 JavaScript、支持 HTML5 等)。优雅降级是指您依赖于某些功能,但如果客户端不支持,则有备份方法。并不是说它真的很重要。 :)
-
嗯。我认为“优雅降级”意味着网站继续运行,即使它通常依赖的功能不可用。相比之下,“渐进式增强”是指站点启用它不依赖的额外功能,仅当用户代理支持它们时。我计划以这样一种方式编写此特定代码,即它根本不会修改 location.hash 属性,除非 hashchange 事件可用。所以这是一个渐进的增强。是的,这并不重要——它们只是一枚硬币的两个面。
标签: javascript dom-events progressive-enhancement