javascript - Modernizr 未检测到 Chrome 和 Firefox 中的功能

标签 javascript html google-chrome firefox modernizr

我已经下载了 Modernizr,并且在构建中仅包含一个元素,即 a[download] 属性

然后,我将 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,"$1"+s+"js$2")}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 ,亲自看看。

关于javascript - Modernizr 未检测到 Chrome 和 Firefox 中的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35454783/

相关文章:

javascript - 列表项中的 ReactJS onClick

javascript - TrimStart()在文本框中动态空格,ASP.NET MVC

javascript - 当我不访问某个网站时,是否会为该网站指定 Chrome 扩展程序?

html - CSS Box 阴影不会出现在 Chrome 中

javascript - HTML 下拉菜单和 SEO 影响的最佳实践

javascript - 循环读取图像,等待加载

html - 横幅元素中的封面视频 : always centered and full-width and height

c# - 在 ASP.Net 中的运行时向 HTML <Select> 添加行

html - 每次悬停在它上面时如何重新加载 "CSS background-image"?

c# - 如何基于Selenium搭建可靠的并行浏览器环境