Tengo un sitio web donde los usuarios pueden enviar texto en cualquier tipo de fuente que deseen, y cuando su texto se carga en un archivo ejs, muestra el texto en la fuente elegida. Estos son los medios para seleccionar la fuente:
<label for="fonts">Choose a font:</label> <select name="fontType" id="fonts"> <option value="Verdana">Verdana</option> <option value="Times New Roman">Times New Roman</option> <option value="Georgia">Georgia</option> </select> <br><br>
En el cual, el texto enviado y la fuente elegida se guardan como valores de cadena en un clúster de MongoDB.
En el archivo ejs, el texto que envió el usuario se guarda en la variable t y la fuente en fuente variable:
<% let t = numbers.usertext%> <% let font = numbers.fontType%>
Donde "números" es el objeto presentado por el archivo index.js en la forma:
res.render("template.ejs", { numbers: numbers});
Luego, más tarde dentro de una etiqueta <script>
, defino algunas variables JS:
let t = "<%= t %>"; let font = "<%= font %>;"
Pensé que todo lo que habría que hacer es algo como esto:
t.style.fontFamily = font;
Sin embargo, recibo un error que dice "No se pueden establecer propiedades de indefinido (configurando 'fontFamily')" y no sé por qué. Puedo cambiar la fuente de algunas etiquetas <p>
usando selecter.style.fontFamily = font
sin problema, pero no puedo manipular las propiedades de la variable t por alguna razón.
style
es una propiedad que se encuentra en los objetos HTMLElement pero t
es una cadena (por lo que su propiedad de style
no está undefined
).
Si desea diseñar algún texto que obtiene de un literal de cadena JS, primero debe colocarlo dentro de un elemento HTML.