@@ -20,7 +20,8 @@ var reGradients = [
2020 / ^ ( - 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 } % ? ) ) ( [ \w \d \. \s , % \( \) - ] + ) \) $ / ,
2121 / ^ ( - m o z - l i n e a r - g r a d i e n t ) \( ( (?: \d { 1 , 3 } % ? ) \s (?: \d { 1 , 3 } % ? ) ) ( [ \w \d \. \s , % \( \) ] + ) \) $ / ,
2222 / ^ ( - w e b k i t - r a d i a l - g r a d i e n t ) \( ( (?: \d { 1 , 3 } % ? ) \s (?: \d { 1 , 3 } % ? ) ) , \s ( e l l i p s e | c i r c l e ) \s ( [ a - z - ] + ) ( (?: , \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 } % ) ? ) + ) \) $ / ,
23- / ^ ( - m o z - r a d i a l - g r a d i e n t ) \( ( (?: \d { 1 , 3 } % ? ) \s (?: \d { 1 , 3 } % ? ) ) , \s ( e l l i p s e | c i r c l e ) \s ? ( [ a - z - ] * ) ( (?: , \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 } % ) ? ) + ) \) $ /
23+ / ^ ( - m o z - r a d i a l - g r a d i e n t ) \( ( (?: \d { 1 , 3 } % ? ) \s (?: \d { 1 , 3 } % ? ) ) , \s ( e l l i p s e | c i r c l e ) \s ? ( [ a - z - ] * ) ( (?: , \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 } % ) ? ) + ) \) $ / ,
24+ / ^ ( - o - r a d i a l - g r a d i e n t ) \( ( (?: \d { 1 , 3 } % ? ) \s (?: \d { 1 , 3 } % ? ) ) , \s ( e l l i p s e | c i r c l e ) \s ( [ a - z - ] + ) ( (?: , \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 ) ) ? ) + ) \) $ /
2425] ;
2526
2627/*
@@ -204,6 +205,7 @@ _html2canvas.Generate.parseGradient = function(css, bounds) {
204205
205206 case '-webkit-radial-gradient' :
206207 case '-moz-radial-gradient' :
208+ case '-o-radial-gradient' :
207209 console . log ( m1 ) ;
208210
209211 gradient = {
@@ -298,16 +300,18 @@ _html2canvas.Generate.parseGradient = function(css, bounds) {
298300 }
299301
300302 // color stops
301- m2 = m1 [ 5 ] . 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) ;
303+ m2 = m1 [ 5 ] . 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) ;
302304 if ( m2 ) {
303305 m2Len = m2 . length ;
304306 step = 1 / Math . max ( m2Len - 1 , 1 ) ;
305307 for ( i = 0 ; i < m2Len ; i += 1 ) {
306- 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 } ) ? ( % ) ? / ) ;
308+ 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 ) ? / ) ;
307309 if ( m3 [ 2 ] ) {
308310 stop = parseFloat ( m3 [ 2 ] ) ;
309- if ( m3 [ 3 ] ) { // percent
311+ if ( m3 [ 3 ] === '%' ) {
310312 stop /= 100 ;
313+ } else { // px - stupid opera
314+ stop /= bounds . width ;
311315 }
312316 } else {
313317 stop = i * step ;
0 commit comments