ich ein benutzerdefiniertes Element wie so definiert haben:Fehlgeschlagen ‚CustomElement‘ Fehler zu konstruieren, wenn der JavaScript-Datei in den Kopf gesetzt wird
class SquareLetter extends HTMLElement {
constructor() {
super();
this.className = getRandomColor();
}
}
customElements.define("square-letter", SquareLetter);
Wenn die JavaScript-Datei in HTML <head>
-Tag enthalten ist, die Chrome-Konsole meldet diesen Fehler :
Uncaught DOMException: Failed to construct 'CustomElement': The result must not have attributes
Aber wenn die JavaScript-Datei vor dem </body>
End-Tag enthalten ist, funktioniert alles einwandfrei. Was ist der Grund?
<head>
<script src="js/SquareLetter.js"></script> <!-- here -->
</head>
<body>
<square-letter>A</square-letter>
<script src="js/SquareLetter.js"></script> <!-- or here -->
</body>
Mögliches Duplikat von [Zugriff auf Attribute eines benutzerdefinierten Elements aus seinem Konstruktor nicht möglich] (http://stackoverflow.com/questions/42251094/cannot-access-attributes-of-a-custom-element-from-its-constructor) – Supersharp