@@ -18,9 +18,13 @@ _html2canvas.Generate = {};
1818// -moz-linear-gradient(0% 50%, rgb(255, 0, 0), rgb(255, 255, 0), rgb(0, 255, 0))
1919// -moz-linear-gradient(0% 50%, rgb(206, 219, 233) 0%, rgb(170, 197, 222) 17%, rgb(97, 153, 199) 50%, rgb(58, 132, 195) 51%, rgb(65, 154, 214) 59%, rgb(75, 184, 240) 71%, rgb(58, 139, 194) 84%, rgb(38, 85, 139) 100%)
2020// -moz-linear-gradient(50% 0%, rgb(240, 183, 161) 0%, rgb(140, 51, 16) 50%, rgb(117, 34, 1) 51%, rgb(191, 110, 78) 100%)
21+ // -o-linear-gradient(left, rgb(255, 0, 0), rgb(255, 255, 0), rgb(0, 255, 0))
22+ // -o-linear-gradient(left, rgb(206, 219, 233) 0px, rgb(170, 197, 222) 17%, rgb(97, 153, 199) 50%, rgb(58, 132, 195) 51%, rgb(65, 154, 214) 59%, rgb(75, 184, 240) 71%, rgb(58, 139, 194) 84%, rgb(38, 85, 139) 100%)
23+ // -o-linear-gradient(top, rgb(240, 183, 161) 0px, rgb(140, 51, 16) 50%, rgb(117, 34, 1) 51%, rgb(191, 110, 78) 100%)
2124
2225var reGradients = [
2326 / ^ ( - w e b k i t - l i n e a r - g r a d i e n t ) \( ( [ a - z \s ] + ) ( (?: , \s (?: r g b | r g b a ) \( \d { 1 , 3 } , \s \d { 1 , 3 } , \s \d { 1 , 3 } (?: , \s [ 0 - 9 \. ] + ) ? \) (?: \s \d { 1 , 3 } % ) ? ) + ) \) $ / ,
27+ / ^ ( - o - l i n e a r - g r a d i e n t ) \( ( [ a - z \s ] + ) ( (?: , \s (?: r g b | r g b a ) \( \d { 1 , 3 } , \s \d { 1 , 3 } , \s \d { 1 , 3 } (?: , \s [ 0 - 9 \. ] + ) ? \) (?: \s \d { 1 , 3 } (?: % | p x ) ) ? ) + ) \) $ / ,
2428 / ^ ( - w e b k i t - g r a d i e n t ) \( ( l i n e a r | r a d i a l ) , \s ( (?: \d { 1 , 3 } % ? ) \s (?: \d { 1 , 3 } % ? ) , \s (?: \d { 1 , 3 } % ? ) \s (?: \d { 1 , 3 } % ? ) ) ( (?: , \s (?: f r o m | t o | c o l o r - s t o p ) \( (?: [ 0 - 9 \. ] + , \s ) ? (?: r g b | r g b a ) \( \d { 1 , 3 } , \s \d { 1 , 3 } , \s \d { 1 , 3 } (?: , \s [ 0 - 9 \. ] + ) ? \) \) ) + ) \) $ / ,
2529 / ^ ( - m o z - l i n e a r - g r a d i e n t ) \( ( (?: \d { 1 , 3 } % ? ) \s (?: \d { 1 , 3 } % ? ) ) ( (?: , \s (?: r g b | r g b a ) \( \d { 1 , 3 } , \s \d { 1 , 3 } , \s \d { 1 , 3 } (?: , \s [ 0 - 9 \. ] + ) ? \) (?: \s \d { 1 , 3 } % ) ? ) + ) \) $ /
2630] ;
@@ -47,6 +51,7 @@ _html2canvas.Generate.parseGradient = function(css, bounds) {
4751 if ( m1 ) {
4852 switch ( m1 [ 1 ] ) {
4953 case '-webkit-linear-gradient' :
54+ case '-o-linear-gradient' :
5055
5156 gradient = {
5257 type : 'linear' ,
@@ -83,16 +88,18 @@ _html2canvas.Generate.parseGradient = function(css, bounds) {
8388 }
8489
8590 // get colors and stops
86- m2 = m1 [ 3 ] . match ( / ( (?: r g b | r g b a ) \( \d { 1 , 3 } , \s \d { 1 , 3 } , \s \d { 1 , 3 } (?: , \s [ 0 - 9 \. ] + ) ? \) (?: \s \d { 1 , 3 } % ) ? ) + / g) ;
91+ m2 = m1 [ 3 ] . match ( / ( (?: r g b | r g b a ) \( \d { 1 , 3 } , \s \d { 1 , 3 } , \s \d { 1 , 3 } (?: , \s [ 0 - 9 \. ] + ) ? \) (?: \s \d { 1 , 3 } (?: % | p x ) ) ? ) + / g) ;
8792 if ( m2 ) {
8893 m2Len = m2 . length ;
8994 step = 1 / Math . max ( m2Len - 1 , 1 ) ;
9095 for ( i = 0 ; i < m2Len ; i += 1 ) {
91- m3 = m2 [ i ] . match ( / ( (?: r g b | r g b a ) \( \d { 1 , 3 } , \s \d { 1 , 3 } , \s \d { 1 , 3 } (?: , \s [ 0 - 9 \. ] + ) ? \) ) \s * ( \d { 1 , 3 } ) ? ( % ) ? / ) ;
96+ m3 = m2 [ i ] . match ( / ( (?: r g b | r g b a ) \( \d { 1 , 3 } , \s \d { 1 , 3 } , \s \d { 1 , 3 } (?: , \s [ 0 - 9 \. ] + ) ? \) ) \s * ( \d { 1 , 3 } ) ? ( % | p x ) ? / ) ;
9297 if ( m3 [ 2 ] ) {
9398 stop = parseFloat ( m3 [ 2 ] ) ;
94- if ( m3 [ 3 ] ) { // percentage
99+ if ( m3 [ 3 ] === '%' ) {
95100 stop /= 100 ;
101+ } else { // px - stupid opera
102+ stop /= bounds . width ;
96103 }
97104 } else {
98105 stop = i * step ;
0 commit comments