Modernizr 未检测到 Chrome 和 Firefox 中的功能
Modernizr not detecting capability in Chrome & Firefox
我已经下载了 Modernizr,并且只在构建中包含了一个元素,a[下载] 属性。
然后我将 modernizr-custom.js 文件包含到我的库中并成功地将它添加到我的项目中(没有错误):
<script src="lib/modernizr-custom.js"></script>
我现在正尝试检测浏览器是否支持下载功能,如下所述:
http://caniuse.com/#feat=download
请注意,IE 和 Safari 不支持,但 Chrome 和 Firefox 支持。
我正在使用以下 Javascript 代码:
if (Modernizr.adownload) {
console.log("SUPPORT");
} else {
console.log("NO SUPPORT");
}
在 IE、Firefox 和 Chrome 上它显示不支持。据我所知,它应该显示对 Firefox 和 Chrome.
的支持
这是我的想法:
- 我没有在构建中包含我需要的东西吗?
- 我是否误解了如何使用 modernizr 测试功能?
- 这是 Modernizr 实现中的错误吗?
适合我:
/*! modernizr 3.3.1 (Custom Build) | MIT *
* http://modernizr.com/download/?-adownload-setclasses !*/
!function(e,n,s){function a(e,n){return typeof e===n}function o(){var e,n,s,o,t,i,f;for(var c in r)if(r.hasOwnProperty(c)){if(e=[],n=r[c],n.name&&(e.push(n.name.toLowerCase()),n.options&&n.options.aliases&&n.options.aliases.length))for(s=0;s<n.options.aliases.length;s++)e.push(n.options.aliases[s].toLowerCase());for(o=a(n.fn,"function")?n.fn():n.fn,t=0;t<e.length;t++)i=e[t],f=i.split("."),1===f.length?Modernizr[f[0]]=o:(!Modernizr[f[0]]||Modernizr[f[0]]instanceof Boolean||(Modernizr[f[0]]=new Boolean(Modernizr[f[0]])),Modernizr[f[0]][f[1]]=o),l.push((o?"":"no-")+f.join("-"))}}function t(e){var n=c.className,s=Modernizr._config.classPrefix||"";if(u&&(n=n.baseVal),Modernizr._config.enableJSClass){var a=new RegExp("(^|\s)"+s+"no-js(\s|$)");n=n.replace(a,""+s+"js")}Modernizr._config.enableClasses&&(n+=" "+s+e.join(" "+s),u?c.className.baseVal=n:c.className=n)}function i(){return"function"!=typeof n.createElement?n.createElement(arguments[0]):u?n.createElementNS.call(n,"http://www.w3.org/2000/svg",arguments[0]):n.createElement.apply(n,arguments)}var l=[],r=[],f={_version:"3.3.1",_config:{classPrefix:"",enableClasses:!0,enableJSClass:!0,usePrefixes:!0},_q:[],on:function(e,n){var s=this;setTimeout(function(){n(s[e])},0)},addTest:function(e,n,s){r.push({name:e,fn:n,options:s})},addAsyncTest:function(e){r.push({name:null,fn:e})}},Modernizr=function(){};Modernizr.prototype=f,Modernizr=new Modernizr;var c=n.documentElement,u="svg"===c.nodeName.toLowerCase();Modernizr.addTest("adownload",!e.externalHost&&"download"in i("a")),o(),t(l),delete f.addTest,delete f.addAsyncTest;for(var d=0;d<Modernizr._q.length;d++)Modernizr._q[d]();e.Modernizr=Modernizr}(window,document);
/* Test code */
if (Modernizr.adownload) {
document.body.innerHTML = "SUPPORT";
} else {
document.body.innerHTML = "NO SUPPORT";
}
您确定您的自定义版本包含[下载]吗?你可能忘了它。 Build from here,自己看看。
我已经下载了 Modernizr,并且只在构建中包含了一个元素,a[下载] 属性。
然后我将 modernizr-custom.js 文件包含到我的库中并成功地将它添加到我的项目中(没有错误):
<script src="lib/modernizr-custom.js"></script>
我现在正尝试检测浏览器是否支持下载功能,如下所述:
http://caniuse.com/#feat=download
请注意,IE 和 Safari 不支持,但 Chrome 和 Firefox 支持。
我正在使用以下 Javascript 代码:
if (Modernizr.adownload) {
console.log("SUPPORT");
} else {
console.log("NO SUPPORT");
}
在 IE、Firefox 和 Chrome 上它显示不支持。据我所知,它应该显示对 Firefox 和 Chrome.
的支持这是我的想法:
- 我没有在构建中包含我需要的东西吗?
- 我是否误解了如何使用 modernizr 测试功能?
- 这是 Modernizr 实现中的错误吗?
适合我:
/*! modernizr 3.3.1 (Custom Build) | MIT *
* http://modernizr.com/download/?-adownload-setclasses !*/
!function(e,n,s){function a(e,n){return typeof e===n}function o(){var e,n,s,o,t,i,f;for(var c in r)if(r.hasOwnProperty(c)){if(e=[],n=r[c],n.name&&(e.push(n.name.toLowerCase()),n.options&&n.options.aliases&&n.options.aliases.length))for(s=0;s<n.options.aliases.length;s++)e.push(n.options.aliases[s].toLowerCase());for(o=a(n.fn,"function")?n.fn():n.fn,t=0;t<e.length;t++)i=e[t],f=i.split("."),1===f.length?Modernizr[f[0]]=o:(!Modernizr[f[0]]||Modernizr[f[0]]instanceof Boolean||(Modernizr[f[0]]=new Boolean(Modernizr[f[0]])),Modernizr[f[0]][f[1]]=o),l.push((o?"":"no-")+f.join("-"))}}function t(e){var n=c.className,s=Modernizr._config.classPrefix||"";if(u&&(n=n.baseVal),Modernizr._config.enableJSClass){var a=new RegExp("(^|\s)"+s+"no-js(\s|$)");n=n.replace(a,""+s+"js")}Modernizr._config.enableClasses&&(n+=" "+s+e.join(" "+s),u?c.className.baseVal=n:c.className=n)}function i(){return"function"!=typeof n.createElement?n.createElement(arguments[0]):u?n.createElementNS.call(n,"http://www.w3.org/2000/svg",arguments[0]):n.createElement.apply(n,arguments)}var l=[],r=[],f={_version:"3.3.1",_config:{classPrefix:"",enableClasses:!0,enableJSClass:!0,usePrefixes:!0},_q:[],on:function(e,n){var s=this;setTimeout(function(){n(s[e])},0)},addTest:function(e,n,s){r.push({name:e,fn:n,options:s})},addAsyncTest:function(e){r.push({name:null,fn:e})}},Modernizr=function(){};Modernizr.prototype=f,Modernizr=new Modernizr;var c=n.documentElement,u="svg"===c.nodeName.toLowerCase();Modernizr.addTest("adownload",!e.externalHost&&"download"in i("a")),o(),t(l),delete f.addTest,delete f.addAsyncTest;for(var d=0;d<Modernizr._q.length;d++)Modernizr._q[d]();e.Modernizr=Modernizr}(window,document);
/* Test code */
if (Modernizr.adownload) {
document.body.innerHTML = "SUPPORT";
} else {
document.body.innerHTML = "NO SUPPORT";
}
您确定您的自定义版本包含[下载]吗?你可能忘了它。 Build from here,自己看看。