我没有在答案中看到它,但我想很高兴知道您可以轻松地使用Vanilla JS或jQuery进行此类简单测试,而Modernizr可以提供很多帮助,但没有它,它们是干净的解决方案。
如果使用jQuery,则可以执行以下操作:
var _supportsLocalStorage = !!window.localStorage
&& $.isFunction(localStorage.getItem)
&& $.isFunction(localStorage.setItem)
&& $.isFunction(localStorage.removeItem);
或者,使用纯Vanilla JavaScript:
var _supportsLocalStorage = !!window.localStorage
&& typeof localStorage.getItem === 'function'
&& typeof localStorage.setItem === 'function'
&& typeof localStorage.removeItem === 'function';
然后,您只需做一个IF来测试支持:
if (_supportsLocalStorage) {
console.log('ls is supported');
alert('ls is supported');
}
因此,整个想法是,每当需要JavaScript功能时,都应先测试父对象,然后再测试代码使用的方法。