ç§ãèŠãŠããTypeError
è²ã®ããŒã¯ãŒãã䜿çšããŠããå ŽåïŒäŸãã°transparent
ããšã¯å¯Ÿç
§çã«ã rgb()
å€ïŒã«å¯Ÿãããããã³ã°ã®ã§ã "ã¹ããã"æ£èŠè¡šçŸã§LinearGradientContainer
ãã®å Žåãåžžã«null
ãè¿ããŸãïŒ
[a-z]+
ã«ã©ãŒããŒã¯ãŒããšrgb()
/ rgba()
é¢æ°è¡šèšã®äž¡æ¹ã§æåŸ
ã©ããã«æ©èœããããã«æ£èŠè¡šçŸãæŽæ°ããŠãã ããã ãããšãããŸãã«ãããè¡ããã«ãªã¯ãšã¹ããåãå
¥ããŸããïŒ ïŒå¿
èŠã«å¿ããŠãæ£èŠè¡šçŸã«hsl()
/ hsla()
ãµããŒããè¿œå ããããšãã§ããŸã...ïŒããããšãããããŸãã
ããããµããŒãããããã®ä¿®æ£ãšãã¹ããå«ããã«ãªã¯ãšã¹ãã¯çŽ æŽãããã§ãããïŒ
ä»é±æ«èŠãŠã¿ãããšæããŸãã èªåã®çºã«ã¡ã¢ããïŒ
https://developer.mozilla.org/docs/Web/CSS/color_value
https://developer.mozilla.org/docs/Web/CSS/gradient
http://stackoverflow.com/a/12456392/357774
ããŒããŒã¹ã¿ã€ã«ã®ã€ã³ã»ããã®å®è£ ã«é¢ããŠã¯ãç¹å®ã®å²åã§è²ãæã/æããããå¿ èŠããããããè²ã«ã€ããŠãäžè¬çãªè§£æãè¡ãå¿ èŠããããŸãã ãã®ã°ã©ããŒã·ã§ã³ã®ä¿®æ£ã«ãããè²ãå ±éã®åœ¢åŒã«è§£æããå¿ èŠãããå Žåã¯ãborder-styleïŒinsetã§ã圹ç«ã€å¯èœæ§ããããŸãã
ããšãã°ãä»»æã®è²ïŒhexãrgbãrgbaãhlsãhlsaããredãããgreenããªã©ã®äºåå®çŸ©ãããååïŒããrãgãbãããã³å€ãå®çŸ©ãããColorãªããžã§ã¯ãã«è§£æã§ããå ŽåãããŒããŒã€ã³ã»ããã®å®è£ ãå€§å¹ ã«ç°¡åã«ãªããŸãã
äžè¬çãªè²ã®è§£æ/è¡šçŸã¯åå©çšã§ããåå©çšããå¿ èŠãããããšã«åæããŸããã ç§ã¯ãããå¿ã«çããŠããããã質åããããŸãã
é±æ«ã«ãããèŠãæ©äŒããããŸããã§ããããããã/ããŸãããã°ææ¥æéããããŸãã
ããã«é¢ããæŽæ°ã¯ãããŸããïŒ
ããŒããã¿ãŸããããŸã ã§ãã ïŒ/ããŒã«ã«ã§ããã€ãã®ãã¹ããèšå®ããŸãããïŒãŸã äœãå®è£ ããŠããŸããïŒãå§åãããã³ã³ãã¥ãŒãã£ã³ã°ãªãœãŒã¹ãéãããŠããŸããã
åºæ¬çãªè²ã®è§£æïŒãããŸã§ã®ãšãããrgbãrgbaãhex3ãããã³hex6ãšããååïŒãè¿œå ãããããã䜿çšããããã«è²ã®ãã¹ãŠã®äœ¿çšæ³ãå€æŽããŸããã ã°ã©ããŒã·ã§ã³æ£èŠè¡šçŸã¯ãŸã æŽæ°ãããŠããŸããã
https://github.com/niklasvh/html2canvas/commit/313c227a1fed416331978e365ef82000ea7f7aa5ãåç §ããŠ
è¯ãïŒ ä»é±æ«ãèŠãŠããããã®æ£èŠè¡šçŸã®æŽæ°ã«ã€ããŠèŠãŠãããŸãã
@niklasvhãã©ã³ãïŒ359ee8bïŒã§è¡ã£ãã³ããããèŠãŠãããªãã®èããæããŠãã ããã äœåãªã³ã¡ã³ããåé€ããããã«è²åã®ãã¹ããè¿œå ããŸãããä»ã®å€æŽãèŠãŠãã ããã
Firefoxã®æ¹å解æãä¿®æ£ããã®ã§ã以åã¯æ£ããã¬ã³ããªã³ã°ãããªãã£ãç¹å®ã®ç·åœ¢ã°ã©ããŒã·ã§ã³ãæ©èœããããã«ãªããŸããã tests/lineargradients_manual.html
ïŒåºæ¬çã«ã¯tests/cases/background/linear-gradient.html
ã³ããŒïŒã«äžæçã«å
¥ããæåãã¹ããèŠãããšãã§ããŸãã ã»ã¬ã³ãã¹ããå®è¡ã§ããããã«ãªããšã粟床ã®åäžãšä»ã®ãã©ãŠã¶/ããŒãžã§ã³ã§ã®ãªã°ã¬ãã·ã§ã³ããªãããšã確èªã§ãããšæããŸãããããã§åé¡ããªãããšã確èªããŠãã ããã ã¬ã³ããªã³ã°ç²ŸåºŠã®åäžã¯ããã¹ãããããã®ãããæ°ããããŒãžã§ã³ã®FFãæ¯èŒããå Žåã«ã®ã¿èŠãããã®ã§ã¯ãªãããšæããŸããïŒãã¹ããããFirefoxã®å¯äžã®ããŒãžã§ã³ã¯15ã§ãã??ïŒ
ããŒãããã®èããæã£ãŠãç§ã¯äœãå¥åŠãªããšããããããããŸãããç§ã®å®¶ã®ãã·ã³ã®æ£æ¹åœ¢ã¯ä»ã»ãšãã©é»ã§ãã
ãããããã498527918c3324dce77260057bc47c280cc3324fãåé¡ã®ã³ãããã®ããã«èŠããŸããç§ã®ãã®ã¯å€§äžå€«ã«èŠããŸãã ïŒsweat_smileïŒ
ããŒã»ã³ããŒãžã100ïŒ ãŸãã¯0ïŒ ä»¥å€ã®å Žåã¯ã©ããªããŸããïŒ
çŸåšã®ãšãããä»»æã®ããŒã»ã³ããŒãžã¯ãµããŒããããŠããŸããïŒããã©ã«ãã®50ïŒ ã®ãŸãŸã§ãïŒããç°¡åã«è¿œå ã§ããŸãã ïŒæŽæ°ïŒä»»æã®ããŒã»ã³ããŒãžã®ãµããŒããè¿œå ãããŸããïŒ6af1874dc04c81d1aba5d6e8e6c8ef69681a2e49ãïŒ
ç§ãããããããªãã®ã¯ãããŒã»ã³ããŒãžä»¥å€ã®é·ãã§ããããã¯ã px
ã em
ã rem
ã ex
ã cm
ã mm
ã in
ã pc
ã pt
ãªã©...ãŸã ã³ãŒãã§æ¢ããŠããŸããããããªãã¯ããŸããŸãªåäœã®é·ããåŠç/å€æããæ¹æ³ã¯ãã§ã«ãããŸããïŒ ïŒããã§ãªãå Žåã¯ãããããã®æ©èœã®äžéšã«ããå¿
èŠããããŸããããããšãåå¥ã«å®è£
ããå¿
èŠããããŸããïŒïŒ
絶察é·ã¯ç°¡åã«å®è£ ã§ããã¯ãã§ãããæåã¯pxã§ååã ãšæããŸãã
@niklasvhãããèŠãŠãäœæ¥ããæéãããå°ããããŸãã ãã«ãªã¯ãšã¹ããè¡ãåã«ã fix-firefox-gradients
ãã©ã³ããšã³ã¡ã³ãã確èªã§ããŸããïŒ
æ£èŠè¡šçŸã¯ãã¯ã»ã«ã®é·ãïŒã°ã©ããŒã·ã§ã³ã®éå§äœçœ®ãšè²ã®åæ¢äœçœ®ã®äž¡æ¹ïŒã解æã§ããŸãããããããæ£ããã¬ã³ããªã³ã°ããããã®ãµããŒãã¯ãŸã ãªãããšã«æ³šæããŠãã ããã 絶察é·ã®ãµããŒããè¿œå ããæãã¯ãªãŒã³ãªæ¹æ³ã¯ãåŸé
ã³ã³ãããŒã³ã³ã¹ãã©ã¯ã¿ãŒã«æž¡ãããimageData
ã«å¢çæ
å ±ãå«ããŠãããããããããŒã»ã³ããŒãžã«å€æããããšã ãšæããŸãã ãã ããããã¯ããããå¥ã®ãã«ãªã¯ãšã¹ãã§è¡ãå¿
èŠããããŸãã
ããããšãïŒ éããªãããã詳ããèŠãŠããã£ãŒãããã¯ãããã°ãé£çµ¡ããããŸãã
ããã«ã€ããŠäœãé²å±ã¯ãããŸããïŒ ããã¯ãŸã å¿ èŠã§ãïŒ
@niklasvhãç§ã®ãã©ã³ãã§äœ¿çšããã¢ãããŒãã
ïŒ+1ïŒç§ã¯ã¡ããã©ããã«ééããŸããïŒ
TypeError: Cannot read property '1' of null at GradientContainer.<anonymous> (http://localhost:8100/all.js:34496:44)
at Array.map (native)
at GradientContainer.LinearGradientContainer (http://localhost:8100/all.js:34493:66)
at ImageLoader.279.ImageLoader.loadImage (http://localhost:8100/all.js:34367:16)
at ImageLoader.<anonymous> (http://localhost:8100/all.js:34339:46)
at Array.forEach (native)
at ImageLoader.279.ImageLoader.addImage (http://localhost:8100/all.js:34337:23)
at Array.forEach (native)
at ImageLoader.279.ImageLoader.findBackgroundImage (http://localhost:8100/all.js:34331:71)
at 295.exports.bind (http://localhost:8100/all.js:36357:25)
ãã@niklasvhïŒ ïŒ526ãä¿®æ£ããŠããã ãããããšãããããŸãã
ç§ã®fix-firefox-gradients
ãã©ã³ããèŠãæ©äŒãåŸãããšããããŸããïŒ PRãäœæããåã«ãã©ã³ãããªããŒã¹ïŒããã³æ°ãã競åãä¿®æ£ïŒããŸãããPRãåŒãç¶ãæè¿ããããã©ããããç¥ãããã ããã ïŒåŠ¥åœãªæéå
ã«ã¬ãã¥ãŒã§ãããšæããŸããïŒïŒããããšãããããŸãïŒ
@usmonsterããããç³ãèš³ãããŸãããããããéããŸããã ãã®ä¿®æ£ãè¡ã£ãŠãããšãã«ç§ãèããŠããæœåšçãªåé¡ã®1ã€ã¯ããã©ãŠã¶ãred
ãblue
ãªã©ã®ååä»ãã®è²ãããããã®rgb
ãŸãã¯rgba
ã«å€æããªãããšã決å®ããå Žåã§ãã transparent
ãèæ
®ã«å
¥ããã ãã§ã¯æ©èœããŸããã Color
ã¢ãžã¥ãŒã«ã¯ããã¹ãŠã®ç°ãªãè²ã®ããªãšãŒã·ã§ã³ãèæ
®ã«å
¥ããŠããŸãããæåã«master
ã§çŸåšã®è§£æãã©ã®ããã«è¡ããããã«ã€ããŠã¯ããŸãæºè¶³ããŠããŸããã
ååä»ãã®è²ãã©ã®ããã«åŠçã§ãããã«ã€ããŠã®ã¢ã€ãã¢ã¯ãããŸããïŒ
@niklasvh ã Color
ã³ã³ã¹ãã©ã¯ã¿ãŒã«ãã£ãŠæ¢ã«å®è¡ãããŠããã«ãã¯ã¢ãããšæ£èŠåã¯ãäœãã誀解ããŠããªãéãããã¹ãŠã®ååä»ãã®è²ãåŠçããã®ã«ååãªã¯ãã§ãã
ããã«ãè²ãšç·åœ¢ã°ã©ããŒã·ã§ã³ã®è§£æã«äœ¿çšãããæ£èŠè¡šçŸãä¿®æ£ããŠãããå ç¢ã§æ£ç¢ºã§ããã©ãŒãã³ã¹ã®é«ããã®ã«ããã®ã§ãååä»ãã®è²ãåé¡ã«ãªãããšã¯ãªããšæããŸãã ã©ãæããŸããïŒ
@usmonsterããã§ããç§ã¯https://github.com/niklasvh/html2canvas/compare/master...usmonsterïŒfix-firefox-gradientsïŒdiff-48b5afb6985c457b9f79fcca1cfb499dR21ãåç §ããŠããŸãã
åé¡ãªãïŒ æ¬¡ã®æ°æ¥ã§èŠãŠã¿ãããšæããŸããé±æ«ã®æéæ ãéããŠããŸããŸããã ïŒ/
@ niklasvh ïŒ708ãã芧ãã ããã :)
FireFoxã®html2canvas.jsïŒ1454ïŒ13ã§ãTypeErrorïŒcolorStopMatchisnullããåãåããŸããã Chromeã§ã¯åäœããŸãã
ããã«ã¡ã¯@ Observer999ïŒ ãã®åé¡ã¯è§£æ±ºãããŸããã åæ§ã®æªè§£æ±ºã®åé¡ãæ€çŽ¢ããããçºçããŠããåé¡ãåçŸããããŒãžãžã®ãªã³ã¯ã䜿çšããŠæ°ããåé¡ãäœæããŠãã ããã ïŒãã¹ãããFirefoxã®ããŒãžã§ã³ãæå®ããŠãã ãããïŒã³ãŒãå ã®TODOãšé¢ä¿ãããã®ã§ã¯ãªãããšæããŸããããããšãããããŸãã
@usmonster @niklasvhããã«ã¡ã¯ããã®åé¡ã解決ããããšã¯ç¥ã£ãŠããŸãããææ°ããŒãžã§ã³ã®html2canvasã䜿çšããŠãããChromeã®ææ°ããŒãžã§ã³ã§ãåããšã©ãŒãçºçããŸãããFirefoxã§ã¯æ©èœããŠããŸãã
html2canvas.jsïŒ formattedïŒ1377 UncaughtïŒin promiseïŒTypeErrorïŒnullã®ããããã£ã1ããèªã¿åããŸãã
LinearGradientContainerã§ã
Array.mapã§ïŒ
æ°ããLinearGradientContainerïŒhtml2canvas.jsïŒformattedïŒ1374ïŒ
ImageLoader.loadImageïŒhtml2canvas.jsïŒformattedïŒ1256ïŒã§
ImageLoaderã§ã
Array.forEachã§ïŒ
ImageLoaderã§ã
Array.forEachã§ïŒ
ImageLoader.findBackgroundImageïŒhtml2canvas.jsïŒformattedïŒ1219ïŒã§
html2canvas.jsã§ïŒ formattedïŒ2563