Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

287
Views
¿Hay una mejor manera de usar execCommand() para editores WYSIWYG, y cómo poner propiedades css personalizadas en etiquetas, e ingresar cosas sin agregar basura?

Actualmente estoy tratando de crear un editor WYSIWYG personalizado para mi sitio y tengo un par de preguntas que me gustaría hacer que se relacionan entre sí. He estado viendo algunos tutoriales sobre cómo hacer un editor desde cero usando HTML, CSS y JavaScript, y todos usan (name for text field).document.execCommand(“(nameOfTypeOfTextFormatting)”, false, null) , sin embargo, he escuchado de algunos lugares que está desactualizado, y se debe usar algo como getSelection() y otros. También parece un poco limitado en comparación con lo que me gustaría hacer. Por lo tanto, me gustaría saber si existe un método alternativo mucho mejor para formatear texto que usar execCommand().

La estructura de mi editor WYSIWYG está encerrada en una etiqueta de formulario, con una etiqueta div que contiene todos los botones y luego una etiqueta iframe que es donde se escribe todo el contenido.

Una cosa que tengo un problema con execCommand() es que cada vez que intento ingresar etiquetas de encabezado y luego hago clic nuevamente en el mismo botón de encabezado, no lo elimina a diferencia de los botones en negrita o tachado. Además, cada vez que agrego una etiqueta de encabezado y hago clic en el botón de código fuente (para alternar entre mostrar el html real y el contenido que muestra el navegador), muestra que se agregan etiquetas <div> después.

Si desea ver cómo se ve una de las funciones para colocar un encabezado, aquí está:

<input type='button' value='Sub-H 3' onclick='editor_sub_heading_3()'>

...

 function editor_sub_heading_3() { editor_textbox.document.execCommand( "formatBlock", false, "H3" ); }

Otra cosa que noté es que cuando hice clic en el botón de superíndice, luego hice clic en la opción Encabezado (h1), luego hice clic en el botón de superíndice para eliminar el formato de superíndice, el texto del encabezado se volvió más pequeño de lo habitual. A lo cual, cuando revisé el código fuente, agregó una etiqueta de intervalo que define el tamaño de fuente de 13.3333... en lugar del tamaño de fuente de una etiqueta de encabezado normal.

Por lo tanto, me gustaría saber si (si todavía debo usar execCommand()) hay una manera de formatear texto como este sin tener que agregarle toda esta basura innecesaria, así como también pasar sin problemas de un formato de texto a otro sin ningún tipo de ocurriendo errores.

Finalmente, me gustaría preguntar cómo podría ingresar etiquetas html personalizadas con propiedades css. Por ejemplo, es posible que desee ingresar una tabla, que cuando se ingrese use una identificación css predefinida o un nombre de clase que formateará esa tabla justo cuando se ingrese, por ejemplo. Si hay una mejor manera de formatear el texto en lugar de execCommand(), ¿cómo podría lograrlo?

Si alguien pudiera ayudarme con esto sería genial! Gracias

about 4 years ago · Juan Pablo Isaza
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!