gpt4 book ai didi

javascript - 为什么使用现代化? if(window.history) 和 if(Modernizr.history) 有什么区别

转载 作者:行者123 更新时间:2023-11-28 19:28:55 31 4
gpt4 key购买 nike

过去,如果我不确定某些内容是否受支持,

我将在 Javascript 中输入 If(something){ ... }。

最近我发现Modernizr也很容易检测浏览器的支持。

它将向 HTML 添加类并创建一个名为 Modernizr 的对象,

但我很困惑为什么我们不使用 If(something) 而是使用 if(Modernizr.something)

例如:

if(window.history){...} 和 if(Modernizr.history) {...} 有什么区别?

最佳答案

因为事情并不总是那么简单。如果您只需要检查window.history,则不需要modernizr。但如果你必须检查其他 future,你应该使用modernizr,因为它已经实现了最好的、轻量级的方法来检测这个 future。看一下源码,例如hashchange检测:

isEventSupported = (function() {

var TAGNAMES = {
'select': 'input', 'change': 'input',
'submit': 'form', 'reset': 'form',
'error': 'img', 'load': 'img', 'abort': 'img'
};

function isEventSupported( eventName, element ) {

element = element || document.createElement(TAGNAMES[eventName] || 'div');
eventName = 'on' + eventName;

var isSupported = eventName in element;

if ( !isSupported ) {
if ( !element.setAttribute ) {
element = document.createElement('div');
}
if ( element.setAttribute && element.removeAttribute ) {
element.setAttribute(eventName, '');
isSupported = is(element[eventName], 'function');

if ( !is(element[eventName], 'undefined') ) {
element[eventName] = undefined;
}
element.removeAttribute(eventName);
}
}

element = null;
return isSupported;
}
return isEventSupported;
})(),

既然 Modernizr 以经过验证且快速的方式为您实现了这一点,为什么您还要自己实现呢?

关于javascript - 为什么使用现代化? if(window.history) 和 if(Modernizr.history) 有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27269273/

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