2016-09-21 3 views
6

Ausprobieren von Webkomponenten, aber habe einen Fehler bekommen, den ich nicht bekomme.Webkomponenten v1 - Illegaler Konstruktor

Das Markup ist einfach und sollte funktionieren. 2 Dateien, beides sind HTML-Dateien.

der Fehler wird auf dem auf der Konsole <script> Tag markiert.

Vielen Dank für Ihre Hilfe.

PS. Ich verwende Google Chrome Beta, um die customElements zu verwenden.

km-button.html

<script> 

class KmButton extends HTMLButtonElement { 

    constructor() { 
    super(); 
    } 

} 

customElements.define('km-button', KmButton, {extends: 'button'}); 

</script> 

index.html

<!DOCTYPE html> 
<html> 
    <head> 
     <!-- import webcomponents --> 
     <link rel="import" href="./components/km-button.html"> 
    </head> 
    <body> 
     <km-button>hej</km-button> 
    </body> 
</html> 

Fehler

km-button.html:1 Uncaught TypeError: Illegal constructor(…)KmButton @ km-button.html:7 

Antwort

0

Ja scheint, dass ich mit dem <km-button></km-button>-Tag verwechselt wurde, es sollte <button is="km-button">some text</button> sein, wenn Sie ein anderes DOM-Element erweitern.

verlassen die Frage auf, ob jemand im gleichen Fehler läuft.

4

Eigentlich does't es noch Arbeit (nach Ihren Korrekturen).

AFAIK der extends Funktion ist noch nicht in der kundenspezifischen Elemente v1 für Chrome implementiert.

Also die is= Syntax ist einfach (und stillschweigend) ignoriert und Ihre Schaltfläche wird als Standard <button> angesehen.

+0

hmm ok dachte nur es funktionierte, da es nicht mehr einen Fehler gab, endete nicht mit ** ist = ** Syntax wie es scheint Apple wird es in Webkit nicht implementieren. Aber danke, dass du mich informiert hast. –

+0

Eine Abhilfe ist diesen polyfill zu verwenden: https://github.com/WebReflection/document-register-element – Supersharp

+1

danke für den Link, aber ich glaube nicht, dass ein polyfill Zugabe während der Entwicklung eine gute Praxis ist, und dass sie sollte nur verwendet werden, wenn die buildtask für den Endbenutzer am "Ende" ausgeführt wird. –

Verwandte Themen