Html2canvas: IE 11 ๋ฌธ์ œ, ์˜ค๋ฅ˜: ์žกํžˆ์ง€ ์•Š์Œ(์•ฝ์† ์ค‘): ์˜ค๋ฅ˜: ๊ตฌ์„ฑ์›์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2018๋…„ 01์›” 08์ผ  ยท  36์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: niklasvh/html2canvas

์˜ค๋ฅ˜ ๋ฐœ์ƒ: "html2canvas $npm_package_version. ์˜ค๋ฅ˜: ์žกํžˆ์ง€ ์•Š์Œ(์•ฝ์† ์ค‘): ์˜ค๋ฅ˜: ๊ตฌ์„ฑ์›์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค."
์บ”๋ฒ„์Šค๋ฅผ ์–ป์œผ๋ ค๊ณ  ํ•  ๋•Œ.

์•”ํ˜ธ:
html2canvas(document.querySelector("#capture")).then(ํ•จ์ˆ˜(์บ”๋ฒ„์Šค) {
console.log(์บ”๋ฒ„์Šค);
document.getElementById('here-appear-theimages').appendChild(์บ”๋ฒ„์Šค);
});
์‚ฌ์šฉ:
์•ต๊ทค๋Ÿฌ ๋ฒ„์ „: 4.0.1
์šด์˜ ์ฒด์ œ: ์œˆ๋„์šฐ 10
๋˜ํ•œ https://cdn.jsdelivr.net/npm/es6-promise/dist/es6-promise.auto.js์˜ ์ฐธ์กฐ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
์ฒจ๋ถ€๋œ ์˜ค๋ฅ˜ ์Šคํฌ๋ฆฐ์ƒท.

error_ie_11

Needs More Information

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

๊ณ ์ณค๋‹ค!!
node_modules/html2canvas/dist/html2canvas.js ์—ด๊ธฐ
if (rule && rule.cssText)
if (rule && typeof rule.cssText === 'string') ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ IE11์—์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. :)

๋ชจ๋“  36 ๋Œ“๊ธ€

๋‚˜๋Š” ๋‹ค์Œ ์•ฝ์† ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ๋Œ€ํ•œ ๋งํฌ๋ฅผ ์ถ”๊ฐ€ํ–ˆ๊ณ  ์šฐ๋ฆฌ๋ฅผ ์œ„ํ•ด IE 11์„ ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์˜€์Šต๋‹ˆ๋‹ค.
https://cdnjs.cloudflare.com/ajax/libs/bluebird/3.3.4/bluebird.min.js

์˜ค๋ฅ˜๋ฅผ ์žฌํ˜„ํ•˜๋Š” ์ฝ”๋“œ๊ฐ€ ์—†์œผ๋ฉด ์ •๋ง ๋„์›€์ด ๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” @niklasvh ๋‹˜ ,

์ด๊ฒƒ์€ ๋‚ด๊ฐ€ ๋ณผ ์ˆ˜ ์žˆ๋Š” GitHub์—์„œ ํ˜ธ์ŠคํŒ…ํ•œ ๋ฐ๋ชจ ์ƒ˜ํ”Œ์ž…๋‹ˆ๋‹ค. - GitHub Html2Canvas Demo

๋ณด๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ ์ „์ฒด ์ฝ”๋“œ๋„ github์— ์—…๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค. ์ฝ”๋“œ ํŒจํ‚ค์ง€

ํ”„๋กœ์ ํŠธ ์‹คํ–‰ ๋ฐฉ๋ฒ•:
1) ํŒจํ‚ค์ง€ ์••์ถ• ํ’€๊ธฐ
2) ์ข…์†์„ฑ์„ ์„ค์น˜ํ•˜๊ธฐ ์œ„ํ•ด ๋””๋ ‰ํ† ๋ฆฌ์—์„œ "npm install" ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
3) ํ”„๋กœ์ ํŠธ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ ค๋ฉด: "npm start"

์•ˆ๋…•ํ•˜์„ธ์š” @jelkins8 ๋‹˜ ,

์ด ์†”๋ฃจ์…˜์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ ๋‚ด๊ฐ€ ๋ณผ ์ˆ˜ ์žˆ๋Š” GitHub์—์„œ ํ˜ธ์ŠคํŒ…ํ•œ ๋ฐ๋ชจ ์ƒ˜ํ”Œ์ž…๋‹ˆ๋‹ค. - GitHub Html2Canvas Demo

๊ฐ์‚ฌ ํ•ด์š”

์•ˆ๋…•ํ•˜์„ธ์š” @niklasvh ๋‹˜ ,
๋‚˜๋„ IE11์—์„œ ์„ฑ๊ณตํ•˜์ง€ ๋ชปํ•œ es6-promise ๋ฐ bluebird๋กœ ์‹œ๋„ํ–ˆ์ง€๋งŒ GitHub Html2Canvas Demo ๋„ IE์—์„œ ์‹คํŒจํ–ˆ์Œ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
html2canvas: Error: Member not found. ๋‹ค์Œ์— Possible Unhandled Promise Rejection: Error: Member not found. ๋ฐ›์Šต๋‹ˆ๋‹ค.
๊ฐ์‚ฌ ํ•ด์š”!

์—…๋ฐ์ดํŠธ๋œ ๋ธ”๋ฃจ๋ฒ„๋“œ ํด๋ฆฌํ•„ ์‚ฌ์šฉ ํ›„ ์Šคํƒ ์ถ”์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

Error: Member not found.
at Anonymous function (eval code:213:21)
   at createElementClone (eval code:212:17)
at cloneNode (eval code:225:13)
at cloneNode (eval code:248:25)
at cloneNode (eval code:248:25)
 at DocumentCloner (eval code:53:9)
at cloneWindow (eval code:505:5)
at Anonymous function (eval code:53:9)
at r (https://cdnjs.cloudflare.com/ajax/libs/bluebird/3.3.4/bluebird.min.js:31:6804)
at r.prototype._settlePromiseFromHandler (https://cdnjs.cloudflare.com/ajax/libs/bluebird/3.3.4/bluebird.min.js:30:12222)

html2canvas์— ๋Œ€ํ•ด ๋™์ผํ•œ ๋ฌธ์ œ์— ์ง๋ฉดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. IE์— ๋Œ€ํ•ด ๊ตฌ์„ฑ์›์„ ์ฐพ์„ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
ํฌ๋กฌ์˜ ๊ฒฝ์šฐ ์™„๋ฒฝํ•˜๊ฒŒ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์œผ๋ฉด ์—…๋ฐ์ดํŠธํ•˜์‹ญ์‹œ์˜ค. ๊ฐ์‚ฌ ํ•ด์š”

๋ฌธ์ œ๋ฅผ ์žฌํ˜„ํ•˜๊ณ  ์›์ธ์„ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. cssText ์†์„ฑ์— ์•ก์„ธ์Šคํ•˜๋ ค๊ณ  ํ•  ๋•Œ createElementClone ํ•จ์ˆ˜์—์„œ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ์ด์œ ๋กœ fa-spin ์žˆ๋Š” ์š”์†Œ์ธ font-awesome์„ ์‚ฌ์šฉํ•  ๋•Œ

๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

if (node instanceof HTMLStyleElement && node.sheet && node.sheet.cssRules) {
              var style = node.cloneNode(false);
                  var css = [].slice.call(node.sheet.cssRules, 0).reduce(function (css, rule) {
                    try {
                      if (rule && rule.cssText) {
                        return css + rule.cssText;
                      }
                      return css;
                    } catch (err) {
                      _this3.logger.log('Unable to access cssText property', rule.name);
                    }
                  }, '');
                  style.textContent = css;

                return style;
            }

try...catch์— ์œ ์˜ํ•˜์‹ญ์‹œ์˜ค.

PR์„ ์˜ฌ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค.

Firefox 58.0.0 (Linux 0.0.0) /tests/reftests/background/radial-gradient2.html Should render untainted canvas FAILED @niklasvh ์—์„œ ํšŒ๊ท€๋ฅผ ์ผ์œผํ‚ค๋Š” ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ํ•œ ๋ฒˆ ์‚ดํŽด๋ณด์‹ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๊ฐ์‚ฌ ํ•ด์š”

์•ˆ๋…•ํ•˜์„ธ์š” @niklasvh ๋‹˜ ,
์ด์— ๋Œ€ํ•œ ํ•ด๊ฒฐ์ฑ…์ด ์žˆ์Šต๋‹ˆ๊นŒ? ์ด ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ  ์žˆ๋Š” ์‚ฌ๋žŒ์ด ์žˆ์Šต๋‹ˆ๊นŒ?

๊ฐ์‚ฌ ํ•ด์š”

์•ˆ๋…•ํ•˜์„ธ์š” @Prabhat2404 , ๋‚ด๊ฐ€ https://github.com/niklasvh/html2canvas/pull/1415 ์—์„œ ์ œ์•ˆํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์€ ์ €์—๊ฒŒ ํšจ๊ณผ์ ์ด์ง€๋งŒ @niklasvh ์—๊ฒŒ ์š”์ฒญํ•œ ๋ฐฉ์‚ฌํ˜• ๊ทธ๋ž˜๋””์–ธํŠธ ํ…Œ์ŠคํŠธ ์ค‘ ํ•˜๋‚˜์— ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ด๋ด. ๊ธ€๊ผด์ด ๋ฉ‹์ง„ ์•„์ด์ฝ˜, ํŠนํžˆ fa-spin์„ ์‚ฌ์šฉํ•  ๋•Œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

์—ฌ๊ธฐ ๊ฐ™์€ ๋ฌธ์ œ

html ์ฝ”๋“œ๋ฅผ ์ธ์‡„ํ•˜๋ ค๊ณ  ํ•  ๊ฒฝ์šฐ๋ฅผ ๋Œ€๋น„ํ•˜์—ฌ IE์— ๋ฌธ์ œ๊ฐ€ ์—ฌ์ „ํžˆ ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.
๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜์ง€ ์•Š๊ณ  ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๊นŒ?

+1

+1

+1

๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ๋„์›€

@evgenyjam ๊ทธ ์†”๋ฃจ์…˜์—๋Š” ์—ฌ์ „ํžˆ ๋ฒ„๊ทธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. reduce์˜ ์ดˆ๊ธฐ ๊ฐ’์œผ๋กœ ๋นˆ ๋ฌธ์ž์—ด์„ ์ถ”๊ฐ€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

PR์—์„œ ์–ธ๊ธ‰ํ–ˆ์ง€๋งŒ ์ž‘์„ฑ์ž๋Š” ์•„์ง ์—…๋ฐ์ดํŠธํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ทธ ๋ณ€ํ™”์™€ ํ•จ๊ป˜ ๊ทธ๊ฒƒ์€ ๋‚˜๋ฅผ ์œ„ํ•ด ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

@cyouden ์ด์ชฝ์œผ๋กœ?
.reduce(("", CSS, ๊ทœ์น™) => {

@BrunoMarc ์•„๋‹ˆ์š”,
.reduce((css, ๊ทœ์น™) => { /* ์ฝ”๋“œ */ }, "")

(์˜ˆ๋ฅผ ๋“ค์–ด, ํ•ด๋‹น diff์—์„œ ๊ต์ฒดํ•˜๊ธฐ ์œ„ํ•ด ์ œ์•ˆ๋œ ๋ณ€๊ฒฝ ์ฝ”๋“œ๋ฅผ ์ฐธ์กฐํ•˜๋ฉด reduce์— ๋Œ€ํ•œ ์ดˆ๊ธฐ ๊ฐ’์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.)

@cyouden ๋‹ต๋ณ€ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ์ด ์ฝ”๋“œ๋ฅผ html2canvas.js์— ์‚ฝ์ž…ํ–ˆ์ง€๋งŒ ์ฐพ์„ ์ˆ˜ ์—†๋Š” ๋ฉค๋ฒ„๊ฐ€ ์—ฌ์ „ํžˆ ์ง€์†๋ฉ๋‹ˆ๋‹ค. ์•„์ด๋””์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ?
if (HTMLStyleElement ๋…ธ๋“œ ์ธ์Šคํ„ด์Šค && node.sheet && node.sheet.cssRules) {
const CSS = [].์Šฌ๋ผ์ด์Šค
.call(node.sheet.cssRules, 0)
.reduce((css, ๊ทœ์น™) => {
๋…ธ๋ ฅํ•˜๋‹ค {
if (๊ทœ์น™ && ๊ทœ์น™.cssText) {
๋ฐ˜ํ™˜ CSS + ๊ทœ์น™.cssText;
}
๋ฐ˜ํ™˜ CSS;
} ์žก๊ธฐ(์˜ค๋ฅ˜) {
this.logger.log('cssText ์†์„ฑ์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค', rule.name);
๋ฐ˜ํ™˜ CSS;
}
}, '');
const ์Šคํƒ€์ผ = node.cloneNode(๊ฑฐ์ง“);
style.textContent = CSS;
๋ฐ˜ํ™˜ ์Šคํƒ€์ผ;
}

@BrunoMarc ์•„๋ฌด ์ƒ๊ฐ์ด ์—†์Šต๋‹ˆ๋‹ค. ๊ทธ ๋ณ€๊ฒฝ์œผ๋กœ ์ถฉ๋ถ„ํ–ˆ์Šต๋‹ˆ๋‹ค.

์•ˆ๋…•ํ•˜์„ธ์š” - ํŒŒํ‹ฐ์— ๋Šฆ์–ด์„œ ์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ์ œ์•ˆ๋œ ๋Œ€๋กœ ๊ธฐ๋ณธ ๋นˆ ๋ฌธ์ž์—ด๋กœ ๋ณ€๊ฒฝ์„ ์ปค๋ฐ‹ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋„์›€์ด ๋˜๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค!
๊ฑด๋ฐฐ

@niklasvh @BrunoMarc @cyouden ์ข‹์€ ์†Œ์‹์€ ๋นŒ๋“œ๊ฐ€ PR์„ ์œ„ํ•ด ์ „๋‹ฌ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
์ฃ„์†กํ•ฉ๋‹ˆ๋‹ค. ๋” ์ผ์ฐ ์—…๋ฐ์ดํŠธํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์˜ฎ๊ธฐ์ง€ ์•Š๊ณ  ๊ณ„์† ์ด๋™ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ŠคํŒŒ์ดํฌ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋™์•ˆ ๋ฒ„๊ทธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ๋„์›€์ด ๋˜๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค!

@simonpinn ๋‚ด ๊ฐ๋„ 4 ์ฝ”๋“œ์— html2canvas-1.0.0-alpha.10 ๋ฒ„์ „์„ ์‚ฌ์šฉํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋‹ค์Œ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  html์˜ ์ผ๋ถ€๋งŒ ์ธ์‡„๋ฉ๋‹ˆ๋‹ค.

34487ms html2canvas: html2canvas $npm_package_version
core.js:1427 ์˜ค๋ฅ˜ ์˜ค๋ฅ˜: ์žกํžˆ์ง€ ์•Š์Œ(์•ฝ์† ์ค‘): ์ •์˜๋˜์ง€ ์•Š์Œ
resolvePromise(zone.js:824)์—์„œ
resolvePromise(zone.js:795)์—์„œ
ํ‰๊ฐ€ ์‹œ(zone.js:873)
ZoneDelegate.invokeTask(zone.js:425)์—์„œ
Object.onInvokeTask์—์„œ(core.js:4747)
ZoneDelegate.invokeTask(zone.js:424)์—์„œ
Zone.runTask์—์„œ (zone.js:192)
drainMicroTaskQueue์—์„œ(zone.js:602)
ZoneTask.invokeTask์—์„œ [ํ˜ธ์ถœ๋กœ] (zone.js:503)
invokeTask์—์„œ(zone.js:1540)
defaultErrorLogger @ core.js:1427
ErrorHandler.handleError @ core.js:1488
Logger.js:36 83270ms html2canvas: ๋…ธ๋“œ ํŠธ๋ฆฌ ๊ตฌ๋ฌธ ๋ถ„์„ ์™„๋ฃŒ
๊ธธ์ด์— ์ž˜๋ชป๋œ ๊ฐ’์ด ์ง€์ •๋จ: "์ž๋™"

@simonpinn ์ €๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. tyscript(angular 4) ์ฝ”๋“œ์˜ ์ตœ์‹  ๋ฒ„์ „ 1.0.0-alpha.10์— ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๊นŒ? ์†”๋ฃจ์…˜์„ ๋„์™€์ฃผ์„ธ์š”. ๋‚˜๋Š” ๋งค์šฐ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

image

@bandacs ์ด ๋ฌธ์ œ๋Š” ์žกํžˆ์ง€ ์•Š์€ ์•ฝ์†์— ๋Œ€ํ•œ IE 11 ์˜ค๋ฅ˜๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ alpha.10 ๋นŒ๋“œ์— ๋Œ€ํ•ด ๋ฌธ์ œ๋ฅผ ์ œ๊ธฐํ•˜์„ธ์š”.

๊ฐ์‚ฌ ํ•ด์š”

@simonpinn @cyouden
์œ„์˜ ๊ฒฐํ•จ์— ๋Œ€ํ•œ ํ›„์† ์กฐ์น˜. Chrome ๋ฐ Firefox ๋ธŒ๋ผ์šฐ์ €์šฉ ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(dom-to-image)๋ฅผ ์ฐพ์•˜์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋ฌธ์ œ๋Š” ์—ฌ์ „ํžˆ IE์—์„œ ๊ณ„์†๋ฉ๋‹ˆ๋‹ค. ์œ„์˜ ๋Œ€ํ™”๋ฅผ ํ†ตํ•ด ๋นˆ ๋ฌธ์ž์—ด ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ๊ฒฐํ•จ์„ ์ˆ˜์ •ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์ž‘๋™ํ•ฉ๋‹ˆ๊นŒ? ๋˜ํ•œ ๊ทธ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์–ธ์ œ ํฌํ•จ๋ ์ง€ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

v1.0.0-alpha.11์—์„œ ๋ณ‘ํ•ฉ๋œ ์ˆ˜์ •

reactjs ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ๊ณ  html2canvas ์—…๋ฐ์ดํŠธ๋ฅผ ์œ„ํ•ด npm์„ ์„ค์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ IE 11 ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” ์—ฌ์ „ํžˆ Member not found ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋„์™€์ฃผ์„ธ์š”. Windows 8 ์‹œ์Šคํ…œ์—์„œ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค.

v1.0.0-alpha.11์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์œผ๋ฉฐ Chrome์—์„œ๋Š” ์ž˜ ์ž‘๋™ํ•˜์ง€๋งŒ IE 11์—์„œ ๊ฐ™์€ ์ค„์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.
html2canvas(ํŒจ๋„).then(์บ”๋ฒ„์Šค => {
var img = ์บ”๋ฒ„์Šค.toDataURL("์ด๋ฏธ์ง€/png");
});

์•ˆ๋…•ํ•˜์„ธ์š”. ๋‚˜์—๊ฒŒ๋„ ๊ฐ™์€ ์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ ๊ณ ๊ฐ์€ IE11์„ ๊ธฐ๋ณธ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค ...

๊ณ ์ณค๋‹ค!!
node_modules/html2canvas/dist/html2canvas.js ์—ด๊ธฐ
if (rule && rule.cssText)
if (rule && typeof rule.cssText === 'string') ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ IE11์—์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. :)

์•ˆ๋…• ๋ชจ๋‘,
๋‚˜๋Š” ๋˜ํ•œ ํ•ด๊ฒฐ ๋œ ์•„๋ž˜ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
node_modules/html2canvas/dist/html2canvas.js ์—ด๊ธฐ
if(rule && rule.cssText) ๊ฒ€์ƒ‰
if (rule && typeof rule.cssText === 'string')๋กœ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.
์ด๊ฒƒ์€ IE11์—์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ–ˆ์Šต๋‹ˆ๋‹ค. :)

๋‚ด ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉํ•  ์ƒˆ ๊ฒŒ์‹œ ๋ฒ„์ „์„ ์–ป์œผ๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•ฉ๋‹ˆ๊นŒ? ํ˜„์žฌ ๋กœ์ปฌ ํ™˜๊ฒฝ์˜ ๋…ธ๋“œ ๋ชจ๋“ˆ์—์„œ ํŽธ์ง‘ํ•˜์—ฌ ํ…Œ์ŠคํŠธํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์„ ํ”„๋กœ๋•์…˜์œผ๋กœ ํ‘ธ์‹œํ•˜๋ ค๋ฉด 'html2canvas' ๋ฒ„์ „์˜ ์ƒˆ๋กœ์šด ๊ฒŒ์‹œ ๋ฒ„์ „์ด ํ•„์š”ํ•ฉ๋‹ˆ๊นŒ? ์–ป์„ ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

ํ˜„์žฌ ์ˆ˜์ • ์‚ฌํ•ญ์ด ์—†๋Š” "html2canvas": "^1.0.0-rc.1"์„ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

@niklasvh๋‹˜ , ์•ˆ๋…•ํ•˜์„ธ์š”, ๋ฌธ์ œ #1374์— ๋Œ€ํ•œ ์ˆ˜์ • ์‚ฌํ•ญ์ด ํฌํ•จ๋œ ์ƒˆ ๋ฒ„์ „์ด ์–ธ์ œ ์ถœ์‹œ๋˜๋Š”์ง€ ์•Œ๋ ค

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰