Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

130
Visualizações
Etiqueta de estilo HTML serializado y deserializado con CSS

Lo que estoy tratando de hacer:

  • Guarde/copie el fragmento de código HTML en un lugar, péguelo en otro lugar y desrealícelo en un DOM análogo

¿Cómo hago la serialización ahora?

  • Llame a element.outerHTML en un elemento contenedor
    • También intenté usar new XMLSerializer().serializeToString(element) con el mismo resultado

La cuestión

Cuando serializo nodos de style que contienen el css como:

 .a > .b { color: red }

De hecho, se serializan como

 .a > .b { color: red }

Que no es un CSS válido y, por lo tanto, no se analiza correctamente.

El problema con el signo mayor es el único que observo, pero me hace preguntarme acerca de otros posibles problemas de serialización.

Pregunta : ¿Cómo puedo serializar los nodos de estilo de una manera que no rompa el CSS en ellos?

about 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Entonces parece que esto tiene que ver con la creación dinámica del nodo de estilo en un nuevo documento.

La reproducción más sencilla es la siguiente:

 const doc = new Document() const style = doc.createElement('style') style.textContent = '.a>.b { color: red; }' console.log(style.outerHTML)

Lo que produce <style>.a&gt;.b {color:red}</style>

Parece que ser parte de un documento renderizado activamente o simplemente agregarse a un documento y no solo crearse con él tiene algún efecto secundario en el nodo de estilo, lo que hace que se serialice correctamente. Así que ahora hago lo siguiente como solución alternativa, que es un poco feo pero funciona:

 const doc = new DOMParser().parseFromString('<html><head></head><body></body></html>', 'text/html') const style = doc.createElement('style') style.textContent = '.a>.b { color: red; }' doc.body.append(style) console.log(style.outerHTML) doc.body.removeChild(style)

Lo que produce un <style>.a>.b { color: red; }</style>

Ahora esto resuelve mi problema, pero todavía me gustaría entender qué está sucediendo aquí con más detalle (por ejemplo, cuál es el efecto secundario exactamente y cómo/cuándo se desencadena), ¡así que agradecería los comentarios al respecto!

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda