jquery media 插件中的大坑
Jquery media是一款跨浏览器的视频播放插件,支持Flash, Quicktime, Windows Media Player, Real Player, MP3, Silverlight等格式。
它对应于不同的格式去加载对应的播放器,映射如下
播放器 | 文件格式 |
Quicktime | aif,aiff,aac,au,bmp,gsm,mov,mid,midi,mpg,mpeg,mp4,m4a,psd,qt,qtif,qif,qti,snd,tif,tiff,wav,3g2,3pg |
Flash | flv, mp3, swf |
Windows Media Player | asx, asf, avi, wma, wmv |
Real Player | ra, ram, rm, rpm, rv, smi, smil |
Silverlight | xaml |
iframe | html, pdf |
这个插件很好的解决了在不同浏览器下播放视频的问题。
不过它有一个大坑,在jquery.metadata.js这个文件中,它居然重写了$.fn.data()方法:
$.fn.data = function(){ return this[0][$.meta.single || "data"];};
这个方法令Jquery原有的data方法失效了,如果在项目中其他地方使用到了Jquery本身自带的data方法的话,那么会报找不到某个属性的错误。
我的解决方法是在jquery.metadata.js这个文件中将这个方法重命名:
$.fn.dataSec = function(){ return this[0][$.meta.single || "data"];};
然后全文检索media插件中其他地方引用到了这个data方法的地方,改为dataSec即可。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。