Google рдиреЗ SVG рдХреЗ рд▓рд┐рдП "offsetWidth" рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░ рджрд┐рдпрд╛ рд╣реИред
рд╡рд┐рдЪрд╛рд░ рд╣реИрдВ?
рдбреЙрдХреНрдЯрд░: https://www.chromestatus.com/features/5724912467574784
рдЗрд╕реЗ рдЙрдард╛рдиреЗ рд╣реА рд╡рд╛рд▓рд╛ рдерд╛! рдереЛрдбрд╝рд╛ рдЪрд┐рдВрддрд┐рдд рдХреБрдЫ рдЗрд╕ рдорд╣реАрдиреЗ рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджреЗрдЧрд╛ред
рд╣рд╛рдВ, рдЬрд╛рд╣рд┐рд░ рддреМрд░ рдкрд░ рдУрдкреЗрд░рд╛ 37 рдмреАрдЯрд╛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреГрд╖реНрдарднреВрдорд┐ рдФрд░ рд╕реАрдорд╛рдУрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧ-рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдгред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реИ, рд╡реЗ рдЬрд╛рдБрдЪ рдирд╣реАрдВ рдХрд░рддреЗ?
рдбреЗрдореЛ рдореЗрдВ рднреА, рдмреИрдХрдЧреНрд░рд╛рдЙрдВрдб рдФрд░ рдмреЙрд░реНрдбрд░ рдирд╣реАрдВ рджрд┐рдЦрддреЗ ((
рдпрд╣ рдПрдХ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдПрд╕рд╡реАрдЬреА рдЕрдм рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред
рдЗрд╕ рд╕рдорд╛рд░реЛрд╣ рдХреЗ рднреАрддрд░ рд╕рдмрд╕реЗ рдмрдбрд╝рд╛ рдЕрдкрд░рд╛рдзреА рд╣реИ:
function offsetBounds(node) {
var parent = node.offsetParent ? offsetBounds(node.offsetParent) : {top: 0, left: 0};
return {
top: node.offsetTop + parent.top,
bottom: node.offsetTop + node.offsetHeight + parent.top,
right: node.offsetLeft + parent.left + node.offsetWidth,
left: node.offsetLeft + parent.left,
width: node.offsetWidth,
height: node.offsetHeight
};
}
lines 1887 - 1898
html2canvas.js . рдореЗрдВ
рд╕рднреА offsetTop, offsetLeft, offsetWidth, offsetHeight
рдЕрдм SVGs рдХреЗ рд▓рд┐рдП рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИрдВ
рдЕрдиреБрд╢рдВрд╕рд┐рдд рд╕рдорд╛рдзрд╛рди getBoundingClientRect()
, рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рдпрд╣ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИред
рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рднреА рдЗрд╕ рдмрд╛рдд рд╕рдорд╛рдзрд╛рди рд╣реИ?
@MarcBalaban рдореИрдВрдиреЗ рдЕрднреА рддрдХ рдЗрд╕рдХреА рдХреЛрд╢рд┐рд╢ рдирд╣реАрдВ рдХреА рд╣реИ, рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рдпрд╣ рдЙрд╕ рд╕рдорд╛рд░реЛрд╣ рдореЗрдВ рд╡рд╛рдкрд╕реА рдХреЗ рдКрдкрд░ рдЗрд╕реЗ рдЬреЛрдбрд╝ рдирд╣реАрдВ рдкрд╛рдПрдЧрд╛;
if ( node.tagName === 'SVG' ) {
return node.getBoundingClientRect();
}
@Dayjo рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдирд╣реАрдВ, рдпрд╣ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рд╣реА рд░рд╛рд╕реНрддреЗ рдкрд░ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд▓рд╛рдЗрди
var parent = node.offsetParent ? offsetBounds(node.offsetParent) : {top: 0, left: 0};
рдпрд╛ рддреЛ рдареАрдХ рд╕реЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдпрд╛ рддреЛ рдСрдлрд╕реЗрдЯрдкреИрд░реЗрдВрдЯ рдХреЛ рднреА рдореВрд▓реНрдпрд╣реНрд░рд╛рд╕ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
рд╣рдореНрдо рд╣рд╛рдБ, рдЗрд╕рдореЗрдВ рдХреБрдЫ рдФрд░ рджреЗрдЦрддреЗ рд╣реБрдП, рдЗрд╕реЗ рдпрд╣рд╛рдВ getBoundingBoxInArbitrarySpace рдлрд╝рдВрдХреНрд╢рди рдЬреИрд╕реЗ рдХреБрдЫ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ; https://svn.apache.org/repos/asf/commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/util/svg.js http://stackoverflow.com рдХреЗ рдЕрдиреБрд╕рд╛рд░
рд╣рд╛рд▓рд╛рдВрдХрд┐ рдЕрднреА рддрдХ рдХрд┐рд╕реА рднреА рддрд░рд╣ рдХреА рдЯреЗрд╕реНрдЯрд┐рдВрдЧ рдХрд░рдиреЗ рдХрд╛ рдореМрдХрд╛ рдирд╣реАрдВ рдорд┐рд▓рд╛ рдерд╛ред
рдЗрд╕ рдореБрджреНрджреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдЦрдмрд░? рдзрдиреНрдпрд╡рд╛рдж!
@chemitaxis - рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рдмрд╛рд╡рдЬреВрдж, рдЕрдм рддрдХ рдореБрдЭреЗ html2canvas рдХреЗ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реБрдИ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдХреМрди рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрд░реЛрдо рдореЗрдВ рдХрдм / рдХрдм рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛?
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдиреЗ рдЕрдм рдХреНрд░реЛрдо рдХрд╛рдо рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрд╕рд╡реАрдЬреА рдпрд╛ рддреЛ рдмрд┐рд▓реНрдХреБрд▓ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд┐рдП рдЧрдП рд╣реИрдВ, рдпрд╛ рдЧрд▓рдд рдкреИрдорд╛рдиреЗ рдкрд░/рдХреИрдирд╡рд╛рд╕ рдореЗрдВ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИрдВред
@niklasvh - рдЗрд╕ рдкрд░ рдХреЛрдИ рд╡рд┐рдЪрд╛рд░? рдЕрдЧрд░ рдореЗрд░реЗ рдкрд╛рд╕ рд╕рдордп рд╣реЛрддрд╛ рддреЛ рдореИрдВ рдЦреБрд╢реА-рдЦреБрд╢реА рдПрдХ рдлрд┐рдХреНрд╕ рдкрд░ рдмреИрд╢ рдХрд░ рд▓реЗрддрд╛ рд▓реЗрдХрд┐рди рдЗрд╕ рд╕рдордп рдореИрдВ рдЪреЛрдХрд╛ рд╣реВрдВред
рдореИрдВрдиреЗ https://svn.apache.org/repos/asf/commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/util/svg.js рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рдкрд░ рдПрдХ рд╢реЙрдЯ рд▓рдЧрд╛рдпрд╛ рдерд╛ред
рд▓реЗрдХрд┐рди рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рдерд╛ рдХрд┐ рдореБрдЭреЗ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╣рд╛рдВ рд╣реИ, рдореИрдВрдиреЗ offsetBounds
рдФрд░ getBounds
рдлрд╝рдВрдХреНрд╢рди рджреЛрдиреЛрдВ рдореЗрдВ рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛ рд▓реЗрдХрд┐рди рдХреЛрдИ рдлрд╛рдпрджрд╛ рдирд╣реАрдВ рд╣реБрдЖред рдПрдХреНрд╕ рдФрд░ рд╡рд╛рдИ рдХреЙрд░реНрдб рд╕рд╣реА рдкреНрд░рддреАрдд рд╣реЛрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдКрдВрдЪрд╛рдИ рд╕рднреА рдЧрд▓рдд рд╣реИрдВ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ рдПрд╕рд╡реАрдЬреА рдХреЛ рдХрдВрдЯреЗрдирд░ рдХреА 100% рдЪреМрдбрд╝рд╛рдИ рдФрд░ рдСрдЯреЛ рдКрдВрдЪрд╛рдИ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдПрд╕рдПрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдХреБрдЫ рдФрд░ рд╡реНрдпрд╛рдкрдХ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
рдореЗрд░реЗ рдкрд╛рд╕ рдирд╡реАрдирддрдо рдмреАрдЯрд╛ рдкреНрд░рддрд┐рдмрджреНрдзрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдпрд╣рд╛рдВ рдПрдХ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╢рд╛рдЦрд╛ рдЪрд▓ рд░рд╣реА рд╣реИ (https://github.com/Dayjo/html2canvas/tree/issue-846)ред рдЕрдЧрд░ рдХреЛрдИ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рддреЛ dist
рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдпрд╛ рдпрджрд┐ рдЖрдк рдЪрд╛рд╣реЗрдВ рддреЛ рдмрд╕ рдкреБрдирд░реНрдирд┐рд░реНрдорд╛рдг рдХрд░реЗрдВред рдкрддрд╛ рдирд╣реАрдВ рдХрд┐рддрдирд╛ рдЕрдЪреНрдЫрд╛ / рдЕрдЧрд░ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред
@Dayjo рд╣рд╛рдБ, рдореИрдВрдиреЗ рдпрд╣ рднреА рджреЗрдЦрд╛ рд╣реИред рдПрд╕рд╡реАрдЬреА рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧрд▓рдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИрдВ рдФрд░ рдЕрдм рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рд╕реНрдХреНрд░реАрди рд╕реЗ рджреВрд░ рд╣реЛрддреЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рдСрдлрд╕реЗрдЯ * рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реЛрддрд╛ рд╣реИред рдореИрдВрдиреЗ рд░рд┐рдХрд░реНрд╕рд┐рд╡ getBoundingClientRect рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рднреА рдЕрдкрдирд╛ рд╣рд╛рде рдЖрдЬрдорд╛рдпрд╛ - рд▓реЗрдХрд┐рди рдХреЛрдИ рднрд╛рдЧреНрдп рдирд╣реАрдВ :( рдореИрдВ рдЖрдкрдХреА рд╢рд╛рдЦрд╛ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдЧрд╛ред
рдореИрдВрдиреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ ... рдореИрдВ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╕рдорд╛рдзрд╛рди рдЬреЛрдбрд╝реВрдВрдЧрд╛ рдпрджрд┐ рдореИрдВ
рд╕рдордп рд╣реИред рджреЗрд░реА рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ... рдпрд╣ FF, Safari рдФрд░ Chrome рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рд╢реНрд░реЗрд╖реНрдаред
рдмреБрдз, 29 рдЬреВрди 2016 рдХреЛ 19:00 рдмрдЬреЗ, рдпреБрдХреА рдХреЗ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛:
@Dayjo https://github.com/Dayjo рд╣рд╛рдВ, рдореИрдВрдиреЗ рдЗрд╕ рдкрд░ рднреА рдЧреМрд░ рдХрд┐рдпрд╛ рд╣реИред рдПрд╕рд╡реАрдЬреА рд╣реИрдВ
рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЧрд▓рдд рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реИрдВ рдФрд░ рдЕрдм рд▓рдЧрднрдЧ рд╣рдореЗрд╢рд╛ рд╕реНрдХреНрд░реАрди рд╕реЗ рджреВрд░ рд╣реИрдВ
рд╕рднреА рдСрдлрд╝рд╕реЗрдЯ* рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд╛ рдореВрд▓реНрдпрд╛рдВрдХрди рдХрд░рддреЗ рд╣реИрдВред рдореИрдВрдиреЗ рднреА рд╣рд▓ рдХрд░рдиреЗ рдореЗрдВ рд╣рд╛рде рдЖрдЬрдорд╛рдпрд╛
рдпрд╣ рд░рд┐рдХрд░реНрд╕рд┐рд╡ getBoundingClientRect рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИ - рд▓реЗрдХрд┐рди рдХреЛрдИ рднрд╛рдЧреНрдп рдирд╣реАрдВ :( рдореИрдВ рдПрдХ рд▓реВрдВрдЧрд╛
рдЕрдкрдиреА рд╢рд╛рдЦрд╛ рдХреЛ рджреЗрдЦреЛред-
рдЖрдк рдЗрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХреНрдпреЛрдВрдХрд┐ рдЖрдкрдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред
рдЗрд╕ рдИрдореЗрд▓ рдХрд╛ рд╕реАрдзреЗ рдЙрддреНрддрд░ рджреЗрдВ, рдЗрд╕реЗ GitHub рдкрд░ рджреЗрдЦреЗрдВ
https://github.com/niklasvh/html2canvas/issues/846#issuecomment -229420457,
рдпрд╛ рдереНрд░реЗрдб рдХреЛ рдореНрдпреВрдЯ рдХрд░реЗрдВ
https://github.com/notifications/unsubscribe/ABWsecUQ2l-rxisMZ4HCKu1nh-mbIMU1ks5qQqSQgaJpZM4IDr12
.
@chemitaxis рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛! рдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рддрддреНрдкрд░ рд╣реИрдВред
рдЕрд░реЗ @chemitaxis , рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рдордп рд╣реЛ рддреЛ рдХреНрдпрд╛ рдЖрдк рдкреАрдЖрд░ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рдЕрдкрдиреЗ рдХрд╛рдВрдЯреЗ рд╕реЗ рд▓рд┐рдВрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
@chemitaxis рдЗрд╕ рдкрд░ рдХреЛрдИ рдкреНрд░рдЧрддрд┐? рдореИрдВ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХреЛрдб рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдореИрдВ рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рдореЗрд░реА рд╕рднреА рдПрд╕рд╡реАрдЬреА рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдЖрдИрдИ рдХреЗ рд╕рд╛рде рд╣рд▓ рдХрд░рддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред
рд╣рд╛рдп @atdiff :) рдореИрдВрдиреЗ рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рдХрд░ рд▓реА рд╣реИ ...
With this, I can convert SVG to Canvas, and them, export fine...
2016-07-21 20:36 GMT+02:00 atdiff notifications@github.com:
@chemitaxis https://github.com/chemitaxis any progress on this? I'm
hoping to test the code out on a project I'm doing to see if it solves all
of my SVG problems especially with IE.тАФ
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/niklasvh/html2canvas/issues/846#issuecomment-234343779,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABWseVDGMW_cSyV_ZMDkkUilXC5mK_Mrks5qX7wcgaJpZM4IDr12
.
рддреЛ @chemitaxis рдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдареАрдХ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдмрд╕ html2canvas рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдорд┐рд▓рд╛?
рд╣рд╛рдВ, рдорд┐рд╢реНрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░... рд▓реЗрдХрд┐рди рдореИрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдПрдХреАрдХреГрдд рд╣реЛ рдЧрдпрд╛ рд╣реВрдВ, рдореБрдЭреЗ рдПрдХреАрдХреГрдд рдХрд░рдиреЗ рдФрд░ рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд┐рдлреИрдХреНрдЯрд░рд┐рдВрдЧ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ... рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рд╕рдордп рдирд╣реАрдВ рд╣реИ... рдХреНрд╖рдорд╛ рдХрд░реЗрдВ, рдореИрдВ ASAP рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЕрдкрд▓реЛрдб рдХрд░реВрдВрдЧрд╛ред рд╢реНрд░реЗрд╖реНрдаред
рдпрд╣ рд╢рд╛рдпрдж рд╣реА рдХреЛрдИ рд╕рдорд╛рдзрд╛рди рд╣реИ... рдЕрдиреНрдп рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдЗрд╕ рддрд░рд╣ рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдПрд╕рд╡реАрдЬреА рдХреЛ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдпрд╣ рд╕рд┐рд░реНрдл рд╕рд╣реА рд╕реНрдерд┐рддрд┐ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
рдХреНрдпрд╛ рдХрд┐рд╕реА рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХреЛрдИ рдлрд┐рдХреНрд╕ рдорд┐рд▓рд╛ рд╣реИ? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрд╕рд╡реАрдЬреА рдЕрдм рдФрд░ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред
рдпрд╣ рдареАрдХ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ рд╕рдорд╛рдзрд╛рди рдорд┐рд▓рд╛ред рдореИрдВ рдХреНрд░реЛрдо рдореЗрдВ рдареАрдХ рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрд╕рд╡реАрдЬреА рднреА рдирд╣реАрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрд╛ рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдлрд╛рд░реА рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдЧрд╛ред рдореИрдВрдиреЗ рдХреЗрд╡рд▓ рдПрд╕рд╡реАрдЬреА рдЗрдирд▓рд╛рдЗрди рддрддреНрд╡ рдореЗрдВ рдЪреМрдбрд╝рд╛рдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝ рджреА рдереАред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛтАЛтАЛрдХрд┐ рдПрдХ рдЧрд▓рдд рдЪреМрдбрд╝рд╛рдИ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХреЗ рд╕рд╛рде рдЗрд╕реЗ рдХреНрд░реЛрдо рдФрд░ рд╕рдлрд╛рд░реА рджреЛрдиреЛрдВ рдореЗрдВ рдкреНрд░рд┐рдВрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП:
var deferred = $q.defer();
element.find('svg').attr('width', '100px');
html2canvas(element, {
background: '#eee',
onrendered: function(canvas) {
var a = document.createElement('a');
a.href = canvas.toDataURL('image/jpeg', 1).replace('image/jpeg', 'image/octet-stream');
a.download = fileName + '.jpg';
a.click();
deferred.resolve();
}
});
return deferred.promise;
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЬреЛ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рдпрд╣рд╛рдВ рдЦреЛрдЬ рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдореЗрд░реА рдЙрдкрд░реЛрдХреНрдд рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рдерд╛ред рдореЗрд░реЗ SVG рдореЗрдВ рд╣реЗрдХреНрд╕ рд░рдВрдЧреЛрдВ рдХреЗ рд▓рд┐рдП # рдЪрд┐рд╣реНрди рдереЗ (рдЙрджрд╛: #ccc)ред рдЪреВрдВрдХрд┐ рдпреЗ рдпреВрдЖрд░рдПрд▓ рдореЗрдВ рдЖрд░рдХреНрд╖рд┐рдд рд╡рд░реНрдг рд╣реИрдВ рдФрд░ рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдЦреНрдд рд╣реИ, рдПрд╕рд╡реАрдЬреА рдкреНрд░рдХрдЯ рдирд╣реАрдВ рд╣реБрдЖред рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдЖрд░рдЬреАрдмреА рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдФрд░ рдЕрдм рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред
@ jgunderson-IAS рдЗрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВ рдЗрд╕реЗ рдПрдХ рддреНрд╡рд░рд┐рдд рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдЬрд╝рдорд╛рдКрдБрдЧрд╛ред
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЗрд╕ рдмрдЧ рдХреЛ рджреЗрдЦрдиреЗ рдореЗрдВ рдПрдХ рджрд┐рди рдмрд┐рддрд╛рдиреЗ рдХрд╛ рдореМрдХрд╛ рдорд┐рд▓реЗрдЧрд╛, рдареАрдХ рд╣реИ, рд╢рд╛рдпрдж рдЗрд╕ рдкрд░ рдЖрдзрд╛ рджрд┐рди, рдлрд┐рд░ рдЖрдзрд╛ рджрд┐рди рдЬреЛ рдореИрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рдВрднрд╛рд╡рд┐рдд рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдореМрдХрд╛ рджреЗрдирд╛ рдЪрд╛рд╣рд┐рдП рдПрдХ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕рдорд╛рдзрд╛рдиред
@niklasvh рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЖрдкрдиреЗ рдЗрд╕реЗ рдмрд┐рд▓реНрдХреБрд▓ рджреЗрдЦрд╛ рд╣реИ, рдпрд╛ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреЛрдИ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдлрд┐рдХреНрд╕ рдХреЛ рд╕рд░реНрд╡реЛрддреНрддрдо рддрд░реАрдХреЗ рд╕реЗ рдХреИрд╕реЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП (рджреЗрдЦреЗрдВ: https://github.com/niklasvh/html2canvas/issues/846#issuecomment-229035694 )
@ jgunderson-IAS рдореИрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрд╕рд╡реАрдЬреА рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдЗрд╕ рд╣реИрдХреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗ рдкреНрд░рд╕реНрддреБрдд рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ, рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдХрд╛рд░ рдЕрд╕рдВрдЧрдд рд╣реИ, рдореИрдВ рдКрдВрдЪрд╛рдИ рдФрд░ рд╡рдЬрди рджреЛрдиреЛрдВ рдЧреБрдгреЛрдВ рдХреЛ рд╕реЗрдЯ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдлрд┐рд░ рднреА рд╡реЗ рдирд┐рдпрдорд┐рдд рд░реВрдк рд╕реЗ 'рд╕реНрдХреНрд╡реИрд╢' рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ 'ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореЗрд░реЗ рдкреГрд╖реНрда рд╕реАрдПрд╕рдПрд╕ рджреНрд╡рд╛рд░рд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдПрд╕рд╡реАрдЬреА рдЖрдХрд╛рд░реЛрдВ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рдХрдВрдЯреЗрдирд░ рдХрд╛ 100% рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдПрдХ рдХрджрдо рдкрддреНрдерд░ рд╣реИ, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдЖрдХрд╛рд░ рдХреА рд╕рд╣реА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдлрд┐рд░ рд╕реЗ рджреЗрдЦрдирд╛ рд╣реЛрдЧрд╛
рдпрд╣рд╛рдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХреИрд╕реЗ svgs рдЕрдм рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдореИрдВ рдореВрд▓ рддрддреНрд╡ рдЪреМрдбрд╝рд╛рдИ (рд╕рднреА svgs рд╕реАрдПрд╕рдПрд╕ рдореЗрдВ 100% рдЪреМрдбрд╝рд╛рдИ рдкрд░ рд╕реЗрдЯ рд╣реИрдВ) рдХреЗ рдЖрдзрд╛рд░ рдкрд░ 'рдСрдирдХреНрд▓реЛрди' рдШрдЯрдирд╛ рдкрд░ рдЪреМрдбрд╝рд╛рдИ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдКрдВрдЪрд╛рдИ рдЗрд╕реЗ рдФрд░ рднреА рдЧрдбрд╝рдмрдбрд╝ рдХрд░ рд░рд╣реА рд╣реИ;
рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ;
onclone: function(doc){
var w,h;
var svgs = doc.querySelectorAll('svg');
for ( var s = 0; s < svgs.length; ++s ) {
w = svgs[s].parentElement.offsetWidth;
svgs[s].setAttribute('width', w );
}
}
рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ svg рдкрд░ рд╣реА рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдкрдиреЗ рдкрд╣рд▓реВ рдЕрдиреБрдкрд╛рдд рдХреЛ рдХрд┐рддрдиреА рдЕрдЪреНрдЫреА рддрд░рд╣ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдкрд╣рд▓рд╛ (рдкрддреНрддреА) svg, рдЕрдиреНрдп рджреЛ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдХреБрдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред
рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореБрдЭреЗ html2canvas рдХрд╛ рдЙрдкрдпреЛрдЧ рдЫреЛрдбрд╝рдирд╛ рдкрдбрд╝рд╛ рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рд╕рд░реНрд╡рд░-рд╕рд╛рдЗрдб рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдкрдбрд╝рд╛ ( wkhtmltoimage
) рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ svgs рдХреЛ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ рдкреНрд░рд╕реНрддреБрдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рдЗрд╕реЗ getBoundingClientRect
рдпрд╛ getBBox
рдЖрджрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рдо рдкрд░ рд▓рд╛рдиреЗ рдореЗрдВ рдЕрд╕рдорд░реНрде рдерд╛
1.0.0 . рдореЗрдВ рдлрд┐рдХреНрд╕реНрдб
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдореИрдВрдиреЗ рдЗрд╕реЗ рд╣рд▓ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ ... рдореИрдВ рд╕рдкреНрддрд╛рд╣ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╕рдорд╛рдзрд╛рди рдЬреЛрдбрд╝реВрдВрдЧрд╛ рдпрджрд┐ рдореИрдВ
рд╕рдордп рд╣реИред рджреЗрд░реА рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ... рдпрд╣ FF, Safari рдФрд░ Chrome рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИред
рд╢реНрд░реЗрд╖реНрдаред
рдмреБрдз, 29 рдЬреВрди 2016 рдХреЛ 19:00 рдмрдЬреЗ, рдпреБрдХреА рдХреЗ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди @github.com рдиреЗ рд▓рд┐рдЦрд╛: