Html2canvas: IE 11-Problem, Fehler: Nicht abgefangen (versprochen): Fehler: Mitglied nicht gefunden.

Erstellt am 8. Jan. 2018  Â·  36Kommentare  Â·  Quelle: niklasvh/html2canvas

Erhaltene Fehlermeldung: "html2canvas $npm_package_version. Fehler: Nicht abgefangen (in Versprechen): Fehler: Mitglied nicht gefunden."
Wenn ich versuche, Leinwand zu bekommen.

Code:
html2canvas(document.querySelector("#capture")).then(function (canvas) {
Konsole.log (Leinwand);
document.getElementById('hier-erscheinen-die-Bilder').appendChild(Leinwand);
});
Verwendung:
Winkelversion: 4.0.1
Betriebssystem: Windows 10
Auch Referenz hinzugefĂŒgt von: https://cdn.jsdelivr.net/npm/es6-promise/dist/es6-promise.auto.js
AngehÀngter Fehler-Screenshot.

error_ie_11

Needs More Information

Hilfreichster Kommentar

Repariert!!
node_modules/html2canvas/dist/html2canvas.js öffnen
Suche nach if (rule && rule.cssText)
und Àndere es in if (rule && typeof rule.cssText === 'string')
Dies hat das Problem fĂŒr mich in IE11 behoben :)

Alle 36 Kommentare

Ich habe einen Link zur folgenden Versprechensbibliothek hinzugefĂŒgt und es schien IE 11 fĂŒr uns zu reparieren.
https://cdnjs.cloudflare.com/ajax/libs/bluebird/3.3.4/bluebird.min.js

Ohne Code zum Reproduzieren des Fehlers kann ich nicht wirklich helfen.

Hallo @niklasvh ,

Dies ist ein Demobeispiel, das ich auf GitHub gehostet habe, das Sie sehen können -

Full - Code wird auch auf GitHub hochgeladen, wenn Sie sehen möchten: - Code -

So fĂŒhren Sie ein Projekt aus:
1) Paket entpacken
2) FĂŒhren Sie den Befehl: "npm install" aus dem Verzeichnis aus, um die AbhĂ€ngigkeit zu installieren
3) Um den Projektbefehl auszufĂŒhren: "npm start"

Hallo @jelkins8 ,

Ich habe diese Lösung ausprobiert, aber sie funktioniert nicht fĂŒr mich.
Dies ist ein Demobeispiel, das ich auf GitHub gehostet habe, das Sie sehen können -

Vielen Dank

Hallo @niklasvh ,
Auch ich habe es mit es6-promise und bluebird ohne Erfolg im IE11 versucht, kann bestÀtigen, dass die GitHub Html2Canvas Demo auch im IE bei mir fehlschlÀgt.
Ich erhalte html2canvas: Error: Member not found. gefolgt von Possible Unhandled Promise Rejection: Error: Member not found.
Danke!

aktualisiert, nachdem ich das bluebird polyfill verwendet habe, ist mein Stack-Trace:

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)

Ich stehe vor dem gleichen Problem fĂŒr html2canvas: Mitglied fĂŒr IE nicht gefunden.
Bei Chrom funktioniert es einwandfrei.
Bitte aktualisieren, wenn eine Lösung. Vielen Dank

Ich habe das Problem reproduziert und die Ursache gefunden. Es passiert in der Funktion createElementClone , wenn versucht wird, auf die Eigenschaft cssText zuzugreifen, aus irgendeinem Grund bei der Verwendung von font-awesome, einem Element mit fa-spin löst diesen Fehler im IE aus, wenn auf die Eigenschaft zugegriffen wird.

Wie folgt funktioniert:

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;
            }

Beachten Sie den Versuch ... Fang.

Ich werde eine PR erstellen.

Scheint eine Regression in Firefox 58.0.0 (Linux 0.0.0) /tests/reftests/background/radial-gradient2.html Should render untainted canvas FAILED @niklasvh zu verursachen, könnten Sie einen Blick darauf werfen?

Danke

Hallo @niklasvh ,
Habt ihr dafĂŒr eine Lösung, sucht jemand nach diesem Problem?

Vielen Dank

Hallo @Prabhat2404 , der Fix, den ich in https://github.com/niklasvh/html2canvas/pull/1415 vorgeschlagen habe, funktioniert gut fĂŒr mich, scheitert jedoch an einem der radialen Gradiententests, den ich @niklasvh gebeten

selbes Problem hier

Das Problem besteht weiterhin fĂŒr den IE, falls wir versuchen, HTML-Code zu drucken.
Gibt es eine Problemumgehung, um den Quellcode der Bibliothek nicht zu Àndern und das Problem zu lösen?

+1

+1

+1

Es hilft mir!

@evgenyjam Diese Lösung hat immer noch einen Fehler, Sie mĂŒssen eine leere Zeichenfolge als Anfangswert fĂŒr

Ich habe das in der PR erwĂ€hnt, aber der Autor hat es noch nicht aktualisiert. Aber mit dieser Änderung funktioniert es fĂŒr mich.

@cyouden auf diese Weise?
.reduce(("", css, Regel) => {

@BrunoMarc Nein, es ist das letzte Argument fĂŒr Reduzieren, also:
.reduce((css, rule) => { /* Code */ }, "")

(Siehe beispielsweise den Code, den die Änderung in diesem Diff ersetzen soll, er verwendet den Anfangswert fĂŒr Reduce korrekt.)

@cyouden Danke fĂŒr die Antwort! Ich habe diesen Code in html2canvas.js eingefĂŒgt, aber das nicht gefundene Mitglied bleibt bestehen.
if (Knoteninstanz von HTMLStyleElement && node.sheet && node.sheet.cssRules) {
const css = [].slice
.call(node.sheet.cssRules, 0)
.reduce((css, Regel) => {
Versuchen {
if (Regel && Regel.cssText) {
CSS + Regel.cssText zurĂŒckgeben;
}
CSS zurĂŒckgeben;
} fangen (irren) {
this.logger.log('Zugriff auf CSSText-Eigenschaft nicht möglich', rule.name);
CSS zurĂŒckgeben;
}
}, '');
const style = node.cloneNode(false);
style.textContent = css;
RĂŒckkehrstil;
}

@BrunoMarc Keine Ahnung, diese Änderung war genug, um es fĂŒr mich zum

Hey - Entschuldigung, dass ich zu spĂ€t zur Party komme, ich habe gerade eine Änderung mit der standardmĂ€ĂŸigen leeren Zeichenfolge fĂŒr das Reduzieren vorgenommen, wie vorgeschlagen, hoffe das hilft!
Danke schön

@niklasvh @BrunoMarc @cyouden gute Nachrichten der Build geht fĂŒr die PR durch
Es tut mir leid, dass ich nicht frĂŒher aktualisiert habe, ich hatte die Bibliothek tatsĂ€chlich verschoben und bin auf den Fehler gestoßen, als ich sie in einer Spitze verwendet habe. Ich hoffe es hilft!

@simonpinn Ich versuche, die Version html2canvas-1.0.0-alpha.10 fĂŒr meinen Winkel-4-Code zu verwenden. Ich erhalte in allen Browsern folgende Fehlermeldung. Und nur ein Teil von HTML wird gedruckt.

34487ms html2canvas: html2canvas $npm_package_version
core.js:1427 FEHLER Fehler: Nicht abgefangen (in Versprechen): nicht definiert
beisolvePromise (zone.js:824)
beisolvePromise (zone.js:795)
bei eval (zone.js:873)
bei ZoneDelegate.invokeTask (zone.js:425)
bei Object.onInvokeTask (core.js:4747)
bei ZoneDelegate.invokeTask (zone.js:424)
bei Zone.runTask (zone.js:192)
bei drainMicroTaskQueue (zone.js:602)
at ZoneTask.invokeTask [as invoke] (zone.js:503)
bei invokeTask (zone.js:1540)
defaultErrorLogger @ core.js:1427
ErrorHandler.handleError @ core.js:1488
Logger.js:36 83270ms html2canvas: Fertiges Parsing des Knotenbaums
UngĂŒltiger Wert fĂŒr LĂ€nge angegeben: "auto"

@simonpinn Ich verwende den Weg wie folgt. Gibt es ein Problem mit der neuesten Version 1.0.0-alpha.10 im Tyscript-Code (Winkel 4)? Könnt ihr mir bitte bei der Lösung helfen. Ich bin sehr in Not.

image

@bandacs Dieses Problem dient zur Lösung eines IE 11-Fehlers fĂŒr nicht abgefangene Versprechen. Bitte richten Sie ein Problem gegen den alpha.10-Build, wenn Sie ein Problem haben.

Danke

@simonpinn @cyouden
Nach oben genannten Fehler. Ich habe die andere Bibliothek (dom-to-image) fĂŒr Chrome- und Firefox-Browser gefunden. Aber das Problem besteht weiterhin im IE. Als ich das obige GesprĂ€ch durchging, erfuhr ich, dass die Problemumgehung fĂŒr leere Zeichenfolgen den Fehler behebt. Funktioniert dieser Workaround? Darf ich auch wissen, wann diese Änderung in die Bibliothek aufgenommen wird?

Fix zusammengefĂŒhrt in v1.0.0-alpha.11

Ich habe das Projekt "reactjs" und habe npm install fĂŒr html2canvas-Updates durchgefĂŒhrt. aber im IE 11-Browser wird mir immer noch angezeigt, dass der Fehler "Mitglied nicht gefunden" wurde. Bitte helfen Sie. Ich habe auf dem Windows 8-System nachgesehen

Ich verwende v1.0.0-alpha.11 und es funktioniert in Chrome hervorragend, aber beim IE 11 wird ein Fehler in den gleichen Zeilen angezeigt
html2canvas(panel).then(canvas => {
var img = canvas.toDataURL("image/png");
});

Hallo. Gleicher Fehler bei mir. Unser Kunde verwendet standardmĂ€ĂŸig IE11 ...

Repariert!!
node_modules/html2canvas/dist/html2canvas.js öffnen
Suche nach if (rule && rule.cssText)
und Àndere es in if (rule && typeof rule.cssText === 'string')
Dies hat das Problem fĂŒr mich in IE11 behoben :)

Hallo zusammen,
Ich habe auch das folgende Problem, das behoben wurde:
Öffnen Sie node_modules/html2canvas/dist/html2canvas.js
Suche nach if (Regel && rule.cssText)
und Àndern Sie es in if (rule && typeof rule.cssText === 'string')
Dies hat das Problem fĂŒr mich in IE11 behoben :)

Wie kann ich eine neue veröffentlichte Version davon erhalten, um sie in meinem Projekt zu verwenden? Derzeit habe ich getestet, indem ich in meiner lokalen Umgebung Knotenmodule bearbeitet habe. Um die Produktion voranzutreiben, benötigen Sie eine neue veröffentlichte Version der 'html2canvas'-Version? kannst du mir bitte helfen es zu bekommen?

Derzeit verwende ich die "html2canvas": "^1.0.0-rc.1", die nicht das Fix hat.

Hallo @niklasvh , können Sie mir sagen, wann eine neue Version mit dem Fix fĂŒr Problem #1374 veröffentlicht wird. Warte sehnsĂŒchtig auf den Fix in der Version.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen