Настраиваемый встроенный элемент без вызова Constructor / Super и будущего Apple - PullRequest
0 голосов
/ 24 февраля 2020

Я выдавливаю последние байты из моего svg-icon Настроенного встроенного HTMLImage Элемент

Некоторые подробные вопросы:

  • Каковы последние новости о (будущем) Apple / Safari и настраиваемых встроенных элементов?
    Есть ли где-нибудь обсуждение для разработчиков?

  • у меня возникнут проблемы из-за того, что вы не используете constructor() и, следовательно, не будете звонить super()?

  • То же самое, если вы не используете connectedCallback()?

Бонусный вопрос:

  • attributeChangedCallback получает параметр ЧЕТВЕРТЫЙ ... недокументированный
    Кто-нибудь знает об этом больше?

    Фрагмент показывает P4 object=null во всех 4 браузерах: Chrome, Edge, FireFox, Opera

customElements.define("svg-icon", class extends HTMLImageElement {
  static get observedAttributes() {
    return ["color"];
  }
  attributeChangedCallback(name,oldValue,newValue,P4,P5) {
    console.log('P4:',typeof P4,P4,'P5:',typeof P5,P5);
    this.src = `data:image/svg+xml,<svg viewBox='0 0 8 8' xmlns='http://www.w3.org/2000/svg'>`
                +`<circle cx='4' cy='4' r='4' fill='${newValue}'/></svg>`
  }
}, { extends: "img" })
img{
  width:10%;
}
<img is="svg-icon" color="red">
<img is="svg-icon" color="green">
<img is="svg-icon" color="blue">
...