tutorial polyfill ie11 crear componentes javascript dom4 shadow-dom toolkitchen

javascript - ie11 - ¿En qué medida se puede emular el DOM de Shadow usando un polyfill?



shadow dom v0 api (1)

He estado trabajando en este problema exacto durante los últimos meses.

En resumen, hay un polyfill que funciona ^ en los navegadores de hoja perenne aquí https://github.com/Polymer/ShadowDOM

^ El relleno múltiple de funciones CSS como @host no está allí todavía, próximamente

Entonces, sí, es una cosa difícil de hacer un poli-relleno, específicamente porque tenemos que inventar árboles DOM secundarios. Intentamos que fuera lo más fácil de usar posible, lo que requería el uso de una técnica de envoltura bastante invasiva.

En otras palabras, si div = document.createElement(''div'') , obtienes una cosa que parece un DIV y funciona como un DIV, pero en realidad es un objeto Wrapper. El objetivo final, por supuesto, es que su código se vea igual si se ejecuta bajo el polyfill o bajo una implementación nativa.

No es 100% a prueba de balas, en particular, no es posible que nosotros envolvamos el document por usted, por lo que debe hacerlo usted mismo, a la:

wrap(document).querySelector(...)

Aparte de la edición del document , los envoltorios están diseñados para funcionar de manera transparente. Todo esto es nuevo, así que me disculpo por la falta de documentos. Estamos trabajando en eso mientras hablamos.

Por favor, presente problemas si tiene preguntas o problemas, nos encanta recibir comentarios. También hay un canal de correo electrónico para discutir este polyfill (y los otros polyfills en esa organización) en [email protected].

Dudo que esto esté ampliamente implementado

Es cierto, pero al menos está en Chrome.

¿Se puede rellenar el borrador de Shadow DOM W3C en JavaScript al proporcionar funciones personalizadas para buscar y atravesar el DOM? ¿Se ha hecho esto? Los intentos que he encontrado han sido más bien humildes y parecen no hacer mucho esfuerzo para emular la especificación.

Aprecio que esta no sea una tarea fácil, pero ¿seguramente alguien la ha considerado detenidamente?