2016-02-17 20 views
1

我已經下載了Modernizr,並在構建中包含了一個元素,[屬性]。Modernizr在Chrome和Firefox中沒有檢測到能力

我遂把Modernizr的-custom.js文件到我的圖書館,並把它添加到我的成功的項目(沒有錯誤):

<script src="lib/modernizr-custom.js"></script> 

我現在嘗試檢測,如果瀏覽器支持這裏所描述的下載功能

http://caniuse.com/#feat=download

注意,IE和Safari不支持它,但Chrome和網絡連接refox做。

我使用下面的JavaScript代碼:

if (Modernizr.adownload) { 
    console.log("SUPPORT"); 
} else { 
    console.log("NO SUPPORT"); 
} 

在IE,Firefox和Chrome,也沒有任何的支持。據我所知,它應該顯示支持Firefox和Chrome。

這裏是我的想法:

  • 我不是包括的東西,我需要在構建?
  • 我誤解了如何使用modernizr測試功能?
  • 這是Modernizr實現中的錯誤嗎?
+0

感謝jsfiddle,這是一個非常好的主意,我將來會這樣做。 –

+0

此頁面顯示每個瀏覽器的正確結果。咦! http://modernizr.github.io/Modernizr/test/ –

+0

@ChuckLeButt'adownload'的測試不包含在您在jsfiddle中使用的modernizr腳本中。 –

回答

1

工作對我來說:

/*! 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,並親自看看。

+0

是的,這是正確的。奇怪的是,CDN版本沒有默認包含的所有東西:https://codepen.io/anon/pen/rxbmJb –

+1

奇怪的是,通過鏈接下載工作正常,但我做了完全相同的事情(我真的),並沒有工作(沒有錯誤)。 .js文件的大小和所有內容完全相同,我完全不理解。謝謝 –

相關問題