Jsdom: Manipuladores de eventos inline ainda não estão certos

Criado em 20 ago. 2017  ·  3Comentários  ·  Fonte: jsdom/jsdom

Dois sintomas:

  • [ ] inline-event-handler-ordering.html não passa (mesmo depois de um teste WPT para corrigir um bug que costumava estar presente nele)
  • [x] EventTarget-impl.js ainda tem coisas de manipulador de eventos embutidos, mas isso realmente não deveria ser mais necessário (corrigido em https://github.com/tmpvar/jsdom/pull/1950)

Para investigar depois de me desembaraçar da minha confusão atual.

Comentários muito úteis

@snuggs Eu não acho que isso afetaria vocês, é só que a ordem de execução entre os ouvintes especificados por meio do atributo e os ouvintes registrados por meio de JS é bastante sutil, e não conseguimos acertar totalmente.

Todos 3 comentários

Espero que essa bagunça não seja tão ruim @domenic. Dito isso...

Na biblioteca de componentes web do snuggsi fazemos a seguinte convenção:

<foo-bar onclick=onbaz></foo-bar>

<script>

Element `foo-bar`

(class extends HTMLElement {

  onbaz (event)
    { console.log (this, 'is the `<foo-bar>` element') }
})

</script>

Basicamente, percorremos os filhos do elemento personalizado procurando atributos dentro de GlobalEventHandlers e "registramos" o método de classe com o mesmo nome. Em seguida, .bind ing manipulador para o elemento personalizado _(ou explicitamente registrado .childNode como no exemplo acima)_. Tentando ficar com o registro de evento clássico testado e comprovado. _(Surpreendentemente, nenhum framework realmente acertou isso. Era um algoritmo simples, na verdade )_

Isso nos afetará de alguma forma? Ou isso é irrelevante para GlobalEventHandlers . Usamos jsdom para testes (é claro). Isso também sugere uma eliminação gradual na especificação html?
Parece-me que seria jogar fora 🍼 👶 com 🛀 🚿 .

Desde já obrigado pela atenção!

/cc @brandondees

@snuggs Eu não acho que isso afetaria vocês, é só que a ordem de execução entre os ouvintes especificados por meio do atributo e os ouvintes registrados por meio de JS é bastante sutil, e não conseguimos acertar totalmente.

Copie isso @TimothyGu obrigado pela resposta rápida! Sempre adoro acompanhar o trabalho de vocês. 🙏

Esta página foi útil?
0 / 5 - 0 avaliações