webshims-rails 1.10.11 → 1.11.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/lib/webshims-rails/version.rb +2 -2
- data/readme.textile +14 -1
- data/vendor/assets/javascripts/webshims/polyfiller.js +2 -1
- data/vendor/assets/javascripts/webshims/shims/combos/1.js +12 -63
- data/vendor/assets/javascripts/webshims/shims/combos/10.js +17 -7
- data/vendor/assets/javascripts/webshims/shims/combos/11.js +17 -3
- data/vendor/assets/javascripts/webshims/shims/combos/12.js +11 -12
- data/vendor/assets/javascripts/webshims/shims/combos/13.js +11 -12
- data/vendor/assets/javascripts/webshims/shims/combos/14.js +0 -4
- data/vendor/assets/javascripts/webshims/shims/combos/15.js +10 -59
- data/vendor/assets/javascripts/webshims/shims/combos/16.js +21 -71
- data/vendor/assets/javascripts/webshims/shims/combos/17.js +17 -3
- data/vendor/assets/javascripts/webshims/shims/combos/18.js +17 -3
- data/vendor/assets/javascripts/webshims/shims/combos/19.js +58 -19
- data/vendor/assets/javascripts/webshims/shims/combos/2.js +12 -67
- data/vendor/assets/javascripts/webshims/shims/combos/20.js +58 -19
- data/vendor/assets/javascripts/webshims/shims/combos/21.js +47 -3
- data/vendor/assets/javascripts/webshims/shims/combos/23.js +11 -12
- data/vendor/assets/javascripts/webshims/shims/combos/24.js +324 -79
- data/vendor/assets/javascripts/webshims/shims/combos/25.js +63 -21
- data/vendor/assets/javascripts/webshims/shims/combos/26.js +5 -6
- data/vendor/assets/javascripts/webshims/shims/combos/27.js +5 -2
- data/vendor/assets/javascripts/webshims/shims/combos/28.js +47 -7
- data/vendor/assets/javascripts/webshims/shims/combos/3.js +1 -55
- data/vendor/assets/javascripts/webshims/shims/combos/30.js +1 -55
- data/vendor/assets/javascripts/webshims/shims/combos/31.js +1 -55
- data/vendor/assets/javascripts/webshims/shims/combos/4.js +0 -4
- data/vendor/assets/javascripts/webshims/shims/combos/5.js +17 -3
- data/vendor/assets/javascripts/webshims/shims/combos/6.js +17 -3
- data/vendor/assets/javascripts/webshims/shims/combos/7.js +12 -67
- data/vendor/assets/javascripts/webshims/shims/combos/8.js +12 -67
- data/vendor/assets/javascripts/webshims/shims/combos/9.js +17 -7
- data/vendor/assets/javascripts/webshims/shims/dom-extend.js +0 -4
- data/vendor/assets/javascripts/webshims/shims/filereader.js +5 -2
- data/vendor/assets/javascripts/webshims/shims/form-core.js +1 -51
- data/vendor/assets/javascripts/webshims/shims/form-datalist-lazy.js +24 -15
- data/vendor/assets/javascripts/webshims/shims/form-number-date-ui.js +6 -2
- data/vendor/assets/javascripts/webshims/shims/form-shim-extend.js +9 -4
- data/vendor/assets/javascripts/webshims/shims/form-validation.js +135 -24
- data/vendor/assets/javascripts/webshims/shims/form-validators.js +189 -55
- data/vendor/assets/javascripts/webshims/shims/forms-picker.js +4 -1
- data/vendor/assets/javascripts/webshims/shims/jpicker/jpicker.css +3 -1
- data/vendor/assets/javascripts/webshims/shims/mediaelement-core.js +11 -12
- data/vendor/assets/javascripts/webshims/shims/mediaelement-jaris.js +47 -3
- data/vendor/assets/javascripts/webshims/shims/mediaelement-yt.js +28 -8
- data/vendor/assets/javascripts/webshims/shims/mediagroup.js +29 -0
- data/vendor/assets/javascripts/webshims/shims/range-ui.js +11 -1
- data/vendor/assets/javascripts/webshims/shims/styles/scss/shim.scss +17 -4
- data/vendor/assets/javascripts/webshims/shims/styles/shim.css +17 -6
- data/vendor/assets/javascripts/webshims/shims/swf/JarisFLVPlayer.swf +0 -0
- metadata +3 -3
- data/vendor/assets/javascripts/webshims/shims/swf/jwwebshims.swf +0 -0
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ZDQzM2Q1ZDU3NDMyYzk3MTQ4ZTk5ZWU2MTE5MDczMTM4NTY2YTA1MQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
ZmMyMTI4YzI3ZmE0NWRmZDczZjVjMTdlMTVlZGI2OWU3ODY4ZTI5MQ==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
YTZkYjFjZjU3NmIzNDc3MDdhMGM0ZTQ0OGE1NTNhOWM3ZTAxYTU0Y2I2OTcx
|
10
|
+
YjVmMmJlZTg3ZTUwYTRjYjkyYTdhNTRkMjU4MzRjZjllMGYwZjNhMzZkZjM0
|
11
|
+
YjAzOTkyMjRkYWRlNDVlNGM1Y2Q3MTliNDE2ZWE1NTEzNTBmNTI=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
MjNjN2U5ZGY1OTI4ZWIxZGVlMmM0M2EzNTdkNzdmNDE5ZWE3MWFmOGUxZjVi
|
14
|
+
Nzk1ZDcwMGJiN2Y2Yjk2NGVkN2I4ZTExZjI2ZjNhNmJhZjlkZWFmZDg4NDk0
|
15
|
+
ZGZhZWFkNzM0ODFhN2UwZWE1Y2ZlZmY4NjMyYjU2OThlNDM1Zjk=
|
data/readme.textile
CHANGED
@@ -2,6 +2,19 @@ h1. Webshims-rails
|
|
2
2
|
|
3
3
|
Easily include the "webshims library":http://aFarkas.github.com/webshim/demos/index.html (by Alexander Farkas) in your Rails 3.1+ project with the asset pipeline.
|
4
4
|
|
5
|
+
h2. Note on Changes in Rails 4
|
6
|
+
|
7
|
+
With the release of Rails 4 and an updated "sprockets-rails":https://github.com/rails/sprockets-rails#changes-from-rails-3x gem, only digest filenames are compiled when running rake assets:precompile (non-digest filenames are no longer compiled).
|
8
|
+
|
9
|
+
Since webshims does not support fingerprinting, this will result in 404s (missing assets) in production mode. To avoid this, you have two options:
|
10
|
+
|
11
|
+
One, turn (back) on asset compiling with non-digest filenames, with, for example, this gist: https://gist.github.com/eric1234/5692456
|
12
|
+
|
13
|
+
Or two, copy-paste the webshims directory into the public/ directory. Then, alter step 3 below to re-configure your basePath from public/assets (as it was in Rails 3.X) to public/:
|
14
|
+
<pre>
|
15
|
+
$.webshims.setOptions('basePath', '/webshims/shims/')
|
16
|
+
</pre>
|
17
|
+
|
5
18
|
h2. Usage
|
6
19
|
|
7
20
|
1. Add webshims-rails to your Gemfile for bundler: @gem 'webshims-rails'@
|
@@ -27,4 +40,4 @@ Users of previous webshims-rails versions should update their sprockets requires
|
|
27
40
|
|
28
41
|
h2. License
|
29
42
|
|
30
|
-
MIT licensed, like the Webshims library.
|
43
|
+
MIT licensed, like the Webshims library.
|
@@ -655,62 +655,12 @@ webshims.register('form-core', function($, webshims, window, document, undefined
|
|
655
655
|
|
656
656
|
|
657
657
|
$(document).on('focusin.lazyloadvalidation', function(e){
|
658
|
-
if('form' in e.target && $(e.target).is(':invalid')){
|
658
|
+
if('form' in e.target && (e.target.list || $(e.target).is(':invalid'))){
|
659
659
|
lazyLoad();
|
660
660
|
}
|
661
661
|
});
|
662
662
|
webshims.ready('WINDOWLOAD', lazyLoad);
|
663
663
|
|
664
|
-
if(options.replaceValidationUI){
|
665
|
-
webshims.ready('DOM forms', function(){
|
666
|
-
$(document).on('firstinvalid', function(e){
|
667
|
-
if(!e.isInvalidUIPrevented()){
|
668
|
-
e.preventDefault();
|
669
|
-
webshims.validityAlert.showFor( e.target );
|
670
|
-
}
|
671
|
-
});
|
672
|
-
});
|
673
|
-
}
|
674
|
-
|
675
|
-
/* extension, but also used to fix native implementation workaround/bugfixes */
|
676
|
-
(function(){
|
677
|
-
var firstEvent,
|
678
|
-
invalids = [],
|
679
|
-
stopSubmitTimer,
|
680
|
-
form
|
681
|
-
;
|
682
|
-
|
683
|
-
$(document).on('invalid', function(e){
|
684
|
-
if(e.wrongWebkitInvalid){return;}
|
685
|
-
var jElm = $(e.target);
|
686
|
-
|
687
|
-
|
688
|
-
if(!firstEvent){
|
689
|
-
//trigger firstinvalid
|
690
|
-
firstEvent = $.Event('firstinvalid');
|
691
|
-
firstEvent.isInvalidUIPrevented = e.isDefaultPrevented;
|
692
|
-
var firstSystemInvalid = $.Event('firstinvalidsystem');
|
693
|
-
$(document).triggerHandler(firstSystemInvalid, {element: e.target, form: e.target.form, isInvalidUIPrevented: e.isDefaultPrevented});
|
694
|
-
jElm.trigger(firstEvent);
|
695
|
-
}
|
696
|
-
|
697
|
-
//if firstinvalid was prevented all invalids will be also prevented
|
698
|
-
if( firstEvent && firstEvent.isDefaultPrevented() ){
|
699
|
-
e.preventDefault();
|
700
|
-
}
|
701
|
-
invalids.push(e.target);
|
702
|
-
e.extraData = 'fix';
|
703
|
-
clearTimeout(stopSubmitTimer);
|
704
|
-
stopSubmitTimer = setTimeout(function(){
|
705
|
-
var lastEvent = {type: 'lastinvalid', cancelable: false, invalidlist: $(invalids)};
|
706
|
-
//reset firstinvalid
|
707
|
-
firstEvent = false;
|
708
|
-
invalids = [];
|
709
|
-
$(e.target).trigger(lastEvent, lastEvent);
|
710
|
-
}, 9);
|
711
|
-
jElm = null;
|
712
|
-
});
|
713
|
-
})();
|
714
664
|
});
|
715
665
|
|
716
666
|
(function(Modernizr, webshims){
|
@@ -739,6 +689,7 @@ webshims.register('form-core', function($, webshims, window, document, undefined
|
|
739
689
|
if(hasNative){
|
740
690
|
var videoElem = document.createElement('video');
|
741
691
|
Modernizr.videoBuffered = ('buffered' in videoElem);
|
692
|
+
Modernizr.mediaDefaultMuted = ('defaultMuted' in videoElem);
|
742
693
|
supportsLoop = ('loop' in videoElem);
|
743
694
|
|
744
695
|
webshims.capturingEvents(['play', 'playing', 'waiting', 'paused', 'ended', 'durationchange', 'loadedmetadata', 'canplay', 'volumechange']);
|
@@ -752,20 +703,15 @@ webshims.register('form-core', function($, webshims, window, document, undefined
|
|
752
703
|
|
753
704
|
if(!options.preferFlash){
|
754
705
|
var noSwitch = {
|
755
|
-
1: 1
|
756
|
-
2: 1
|
706
|
+
1: 1
|
757
707
|
};
|
758
708
|
var switchOptions = function(e){
|
759
709
|
var media, error, parent;
|
760
710
|
if(!options.preferFlash &&
|
761
711
|
($(e.target).is('audio, video') || ((parent = e.target.parentNode) && $('source:last', parent)[0] == e.target)) &&
|
762
|
-
(media = $(e.target).closest('audio, video')) &&
|
712
|
+
(media = $(e.target).closest('audio, video')) && (error = media.prop('error')) && !noSwitch[error.code]
|
763
713
|
){
|
764
|
-
|
765
|
-
webshims.warn("There was an unspecified error on a mediaelement");
|
766
|
-
return;
|
767
|
-
|
768
|
-
}
|
714
|
+
|
769
715
|
$(function(){
|
770
716
|
if(hasSwf && !options.preferFlash){
|
771
717
|
loadSwf();
|
@@ -777,7 +723,7 @@ webshims.register('form-core', function($, webshims, window, document, undefined
|
|
777
723
|
$('audio, video').each(function(){
|
778
724
|
webshims.mediaelement.selectSource(this);
|
779
725
|
});
|
780
|
-
webshims.error("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src+" Mediaerror: "+ media.prop('error'));
|
726
|
+
webshims.error("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src+" Mediaerror: "+ media.prop('error')+ 'first error: '+ error);
|
781
727
|
}
|
782
728
|
}, 9);
|
783
729
|
});
|
@@ -983,7 +929,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
983
929
|
if(src.indexOf('rtmp') === 0){
|
984
930
|
return nodeName+'/rtmp';
|
985
931
|
}
|
986
|
-
src = src.split('?')[0].split('.');
|
932
|
+
src = src.split('?')[0].split('#')[0].split('.');
|
987
933
|
src = src[src.length - 1];
|
988
934
|
var mt;
|
989
935
|
|
@@ -1102,7 +1048,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
1102
1048
|
webshims.error('mediaelementError: '+ message);
|
1103
1049
|
setTimeout(function(){
|
1104
1050
|
if($(elem).data('mediaerror')){
|
1105
|
-
$(elem).trigger('mediaerror');
|
1051
|
+
$(elem).addClass('media-error').trigger('mediaerror');
|
1106
1052
|
}
|
1107
1053
|
}, 1);
|
1108
1054
|
}
|
@@ -1166,6 +1112,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
1166
1112
|
var parent = elem.parentNode;
|
1167
1113
|
|
1168
1114
|
clearTimeout(baseData.loadTimer);
|
1115
|
+
$(elem).removeClass('media-error');
|
1169
1116
|
$.data(elem, 'mediaerror', false);
|
1170
1117
|
|
1171
1118
|
if(!_srces.length || !parent || parent.nodeType != 1 || stopParent.test(parent.nodeName || '')){return;}
|
@@ -1193,7 +1140,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
1193
1140
|
var testFixMedia = function(){
|
1194
1141
|
if(webshims.implement(this, 'mediaelement')){
|
1195
1142
|
selectSource(this);
|
1196
|
-
|
1143
|
+
if(!Modernizr.mediaDefaultMuted && $.attr(this, 'muted') != null){
|
1144
|
+
$.prop(this, 'muted', true);
|
1145
|
+
}
|
1197
1146
|
//fixes for FF 12 and IE9/10 || does not hurt, if run in other browsers
|
1198
1147
|
if(hasNative && (!supportsLoop || ('ActiveXObject' in window))){
|
1199
1148
|
var bufferTimer;
|
@@ -13,10 +13,6 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
13
13
|
webshims.error("Webshims needs jQuery 1.8+ to work properly. Please update your jQuery version or downgrade webshims.");
|
14
14
|
}
|
15
15
|
|
16
|
-
if(webshims.cfg.extendNative === undefined){
|
17
|
-
webshims.warn("extendNative configuration was set to false by default with this release. In case you rely on it set it to 'true' otherwise to 'false'. See http://bit.ly/16OOTQO");
|
18
|
-
}
|
19
|
-
|
20
16
|
if (!webshims.cfg.no$Switch) {
|
21
17
|
var switch$ = function(){
|
22
18
|
if (window.jQuery && (!window.$ || window.jQuery == window.$) && !window.jQuery.webshims) {
|
@@ -1271,7 +1267,17 @@ webshims.register('dom-extend', function($, webshims, window, document, undefine
|
|
1271
1267
|
this.value(this.options.value, true);
|
1272
1268
|
},
|
1273
1269
|
step: function(val){
|
1274
|
-
this.options
|
1270
|
+
var o = this.options;
|
1271
|
+
var step = val == 'any' ? 'any' : retDefault(val, 1);
|
1272
|
+
|
1273
|
+
if(o.stepping){
|
1274
|
+
if(step != 'any' && o.stepping % step){
|
1275
|
+
webshims.error('wrong stepping value for type range:'+ (o.stepping % step));
|
1276
|
+
} else {
|
1277
|
+
step = o.stepping;
|
1278
|
+
}
|
1279
|
+
}
|
1280
|
+
o.step = step;
|
1275
1281
|
this.value(this.options.value);
|
1276
1282
|
},
|
1277
1283
|
|
@@ -1992,6 +1998,8 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1992
1998
|
fVal[0] = tmp;
|
1993
1999
|
}
|
1994
2000
|
val = this.date(fVal[0], o) +'T'+ this.time(fVal[1], o);
|
2001
|
+
} else if (fVal.length == 3) {
|
2002
|
+
val = this.date(fVal[0], o) +'T'+ this.time(fVal[1]+fVal[2], o);
|
1995
2003
|
}
|
1996
2004
|
return val;
|
1997
2005
|
},
|
@@ -2848,7 +2856,9 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
2848
2856
|
|
2849
2857
|
picker._actions = {
|
2850
2858
|
changeInput: function(val, popover, data){
|
2851
|
-
|
2859
|
+
if(!data.options.noChangeDismiss){
|
2860
|
+
picker._actions.cancel(val, popover, data);
|
2861
|
+
}
|
2852
2862
|
data.setChange(val);
|
2853
2863
|
},
|
2854
2864
|
cancel: function(val, popover, data){
|
@@ -3395,7 +3405,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
3395
3405
|
});
|
3396
3406
|
}
|
3397
3407
|
|
3398
|
-
var isStupid = modernizrInputTypes.number && navigator.userAgent.indexOf('Touch') == -1 && (/MSIE 1[0|1]\.\d/.test(navigator.userAgent) || /Trident\/7\.0/.test(navigator.userAgent));
|
3408
|
+
var isStupid = modernizrInputTypes.number && navigator.userAgent.indexOf('Touch') == -1 && ((/MSIE 1[0|1]\.\d/.test(navigator.userAgent)) || (/Trident\/7\.0/.test(navigator.userAgent)));
|
3399
3409
|
['number', 'time', 'month', 'date', 'color', 'datetime-local'].forEach(function(name){
|
3400
3410
|
if(!modernizrInputTypes[name] || options.replaceUI || (name == 'number' && isStupid)){
|
3401
3411
|
extendType(name, {
|
@@ -177,7 +177,17 @@
|
|
177
177
|
this.value(this.options.value, true);
|
178
178
|
},
|
179
179
|
step: function(val){
|
180
|
-
this.options
|
180
|
+
var o = this.options;
|
181
|
+
var step = val == 'any' ? 'any' : retDefault(val, 1);
|
182
|
+
|
183
|
+
if(o.stepping){
|
184
|
+
if(step != 'any' && o.stepping % step){
|
185
|
+
webshims.error('wrong stepping value for type range:'+ (o.stepping % step));
|
186
|
+
} else {
|
187
|
+
step = o.stepping;
|
188
|
+
}
|
189
|
+
}
|
190
|
+
o.step = step;
|
181
191
|
this.value(this.options.value);
|
182
192
|
},
|
183
193
|
|
@@ -898,6 +908,8 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
898
908
|
fVal[0] = tmp;
|
899
909
|
}
|
900
910
|
val = this.date(fVal[0], o) +'T'+ this.time(fVal[1], o);
|
911
|
+
} else if (fVal.length == 3) {
|
912
|
+
val = this.date(fVal[0], o) +'T'+ this.time(fVal[1]+fVal[2], o);
|
901
913
|
}
|
902
914
|
return val;
|
903
915
|
},
|
@@ -1754,7 +1766,9 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
1754
1766
|
|
1755
1767
|
picker._actions = {
|
1756
1768
|
changeInput: function(val, popover, data){
|
1757
|
-
|
1769
|
+
if(!data.options.noChangeDismiss){
|
1770
|
+
picker._actions.cancel(val, popover, data);
|
1771
|
+
}
|
1758
1772
|
data.setChange(val);
|
1759
1773
|
},
|
1760
1774
|
cancel: function(val, popover, data){
|
@@ -2301,7 +2315,7 @@ webshims.register('form-number-date-ui', function($, webshims, window, document,
|
|
2301
2315
|
});
|
2302
2316
|
}
|
2303
2317
|
|
2304
|
-
var isStupid = modernizrInputTypes.number && navigator.userAgent.indexOf('Touch') == -1 && (/MSIE 1[0|1]\.\d/.test(navigator.userAgent) || /Trident\/7\.0/.test(navigator.userAgent));
|
2318
|
+
var isStupid = modernizrInputTypes.number && navigator.userAgent.indexOf('Touch') == -1 && ((/MSIE 1[0|1]\.\d/.test(navigator.userAgent)) || (/Trident\/7\.0/.test(navigator.userAgent)));
|
2305
2319
|
['number', 'time', 'month', 'date', 'color', 'datetime-local'].forEach(function(name){
|
2306
2320
|
if(!modernizrInputTypes[name] || options.replaceUI || (name == 'number' && isStupid)){
|
2307
2321
|
extendType(name, {
|
@@ -476,6 +476,7 @@ var swfmini = function() {
|
|
476
476
|
if(hasNative){
|
477
477
|
var videoElem = document.createElement('video');
|
478
478
|
Modernizr.videoBuffered = ('buffered' in videoElem);
|
479
|
+
Modernizr.mediaDefaultMuted = ('defaultMuted' in videoElem);
|
479
480
|
supportsLoop = ('loop' in videoElem);
|
480
481
|
|
481
482
|
webshims.capturingEvents(['play', 'playing', 'waiting', 'paused', 'ended', 'durationchange', 'loadedmetadata', 'canplay', 'volumechange']);
|
@@ -489,20 +490,15 @@ var swfmini = function() {
|
|
489
490
|
|
490
491
|
if(!options.preferFlash){
|
491
492
|
var noSwitch = {
|
492
|
-
1: 1
|
493
|
-
2: 1
|
493
|
+
1: 1
|
494
494
|
};
|
495
495
|
var switchOptions = function(e){
|
496
496
|
var media, error, parent;
|
497
497
|
if(!options.preferFlash &&
|
498
498
|
($(e.target).is('audio, video') || ((parent = e.target.parentNode) && $('source:last', parent)[0] == e.target)) &&
|
499
|
-
(media = $(e.target).closest('audio, video')) &&
|
499
|
+
(media = $(e.target).closest('audio, video')) && (error = media.prop('error')) && !noSwitch[error.code]
|
500
500
|
){
|
501
|
-
|
502
|
-
webshims.warn("There was an unspecified error on a mediaelement");
|
503
|
-
return;
|
504
|
-
|
505
|
-
}
|
501
|
+
|
506
502
|
$(function(){
|
507
503
|
if(hasSwf && !options.preferFlash){
|
508
504
|
loadSwf();
|
@@ -514,7 +510,7 @@ var swfmini = function() {
|
|
514
510
|
$('audio, video').each(function(){
|
515
511
|
webshims.mediaelement.selectSource(this);
|
516
512
|
});
|
517
|
-
webshims.error("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src+" Mediaerror: "+ media.prop('error'));
|
513
|
+
webshims.error("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src+" Mediaerror: "+ media.prop('error')+ 'first error: '+ error);
|
518
514
|
}
|
519
515
|
}, 9);
|
520
516
|
});
|
@@ -720,7 +716,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
720
716
|
if(src.indexOf('rtmp') === 0){
|
721
717
|
return nodeName+'/rtmp';
|
722
718
|
}
|
723
|
-
src = src.split('?')[0].split('.');
|
719
|
+
src = src.split('?')[0].split('#')[0].split('.');
|
724
720
|
src = src[src.length - 1];
|
725
721
|
var mt;
|
726
722
|
|
@@ -839,7 +835,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
839
835
|
webshims.error('mediaelementError: '+ message);
|
840
836
|
setTimeout(function(){
|
841
837
|
if($(elem).data('mediaerror')){
|
842
|
-
$(elem).trigger('mediaerror');
|
838
|
+
$(elem).addClass('media-error').trigger('mediaerror');
|
843
839
|
}
|
844
840
|
}, 1);
|
845
841
|
}
|
@@ -903,6 +899,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
903
899
|
var parent = elem.parentNode;
|
904
900
|
|
905
901
|
clearTimeout(baseData.loadTimer);
|
902
|
+
$(elem).removeClass('media-error');
|
906
903
|
$.data(elem, 'mediaerror', false);
|
907
904
|
|
908
905
|
if(!_srces.length || !parent || parent.nodeType != 1 || stopParent.test(parent.nodeName || '')){return;}
|
@@ -930,7 +927,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
930
927
|
var testFixMedia = function(){
|
931
928
|
if(webshims.implement(this, 'mediaelement')){
|
932
929
|
selectSource(this);
|
933
|
-
|
930
|
+
if(!Modernizr.mediaDefaultMuted && $.attr(this, 'muted') != null){
|
931
|
+
$.prop(this, 'muted', true);
|
932
|
+
}
|
934
933
|
//fixes for FF 12 and IE9/10 || does not hurt, if run in other browsers
|
935
934
|
if(hasNative && (!supportsLoop || ('ActiveXObject' in window))){
|
936
935
|
var bufferTimer;
|
@@ -24,6 +24,7 @@
|
|
24
24
|
if(hasNative){
|
25
25
|
var videoElem = document.createElement('video');
|
26
26
|
Modernizr.videoBuffered = ('buffered' in videoElem);
|
27
|
+
Modernizr.mediaDefaultMuted = ('defaultMuted' in videoElem);
|
27
28
|
supportsLoop = ('loop' in videoElem);
|
28
29
|
|
29
30
|
webshims.capturingEvents(['play', 'playing', 'waiting', 'paused', 'ended', 'durationchange', 'loadedmetadata', 'canplay', 'volumechange']);
|
@@ -37,20 +38,15 @@
|
|
37
38
|
|
38
39
|
if(!options.preferFlash){
|
39
40
|
var noSwitch = {
|
40
|
-
1: 1
|
41
|
-
2: 1
|
41
|
+
1: 1
|
42
42
|
};
|
43
43
|
var switchOptions = function(e){
|
44
44
|
var media, error, parent;
|
45
45
|
if(!options.preferFlash &&
|
46
46
|
($(e.target).is('audio, video') || ((parent = e.target.parentNode) && $('source:last', parent)[0] == e.target)) &&
|
47
|
-
(media = $(e.target).closest('audio, video')) &&
|
47
|
+
(media = $(e.target).closest('audio, video')) && (error = media.prop('error')) && !noSwitch[error.code]
|
48
48
|
){
|
49
|
-
|
50
|
-
webshims.warn("There was an unspecified error on a mediaelement");
|
51
|
-
return;
|
52
|
-
|
53
|
-
}
|
49
|
+
|
54
50
|
$(function(){
|
55
51
|
if(hasSwf && !options.preferFlash){
|
56
52
|
loadSwf();
|
@@ -62,7 +58,7 @@
|
|
62
58
|
$('audio, video').each(function(){
|
63
59
|
webshims.mediaelement.selectSource(this);
|
64
60
|
});
|
65
|
-
webshims.error("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src+" Mediaerror: "+ media.prop('error'));
|
61
|
+
webshims.error("switching mediaelements option to 'preferFlash', due to an error with native player: "+e.target.src+" Mediaerror: "+ media.prop('error')+ 'first error: '+ error);
|
66
62
|
}
|
67
63
|
}, 9);
|
68
64
|
});
|
@@ -268,7 +264,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
268
264
|
if(src.indexOf('rtmp') === 0){
|
269
265
|
return nodeName+'/rtmp';
|
270
266
|
}
|
271
|
-
src = src.split('?')[0].split('.');
|
267
|
+
src = src.split('?')[0].split('#')[0].split('.');
|
272
268
|
src = src[src.length - 1];
|
273
269
|
var mt;
|
274
270
|
|
@@ -387,7 +383,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
387
383
|
webshims.error('mediaelementError: '+ message);
|
388
384
|
setTimeout(function(){
|
389
385
|
if($(elem).data('mediaerror')){
|
390
|
-
$(elem).trigger('mediaerror');
|
386
|
+
$(elem).addClass('media-error').trigger('mediaerror');
|
391
387
|
}
|
392
388
|
}, 1);
|
393
389
|
}
|
@@ -451,6 +447,7 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
451
447
|
var parent = elem.parentNode;
|
452
448
|
|
453
449
|
clearTimeout(baseData.loadTimer);
|
450
|
+
$(elem).removeClass('media-error');
|
454
451
|
$.data(elem, 'mediaerror', false);
|
455
452
|
|
456
453
|
if(!_srces.length || !parent || parent.nodeType != 1 || stopParent.test(parent.nodeName || '')){return;}
|
@@ -478,7 +475,9 @@ webshims.register('mediaelement-core', function($, webshims, window, document, u
|
|
478
475
|
var testFixMedia = function(){
|
479
476
|
if(webshims.implement(this, 'mediaelement')){
|
480
477
|
selectSource(this);
|
481
|
-
|
478
|
+
if(!Modernizr.mediaDefaultMuted && $.attr(this, 'muted') != null){
|
479
|
+
$.prop(this, 'muted', true);
|
480
|
+
}
|
482
481
|
//fixes for FF 12 and IE9/10 || does not hurt, if run in other browsers
|
483
482
|
if(hasNative && (!supportsLoop || ('ActiveXObject' in window))){
|
484
483
|
var bufferTimer;
|