Autor
|
Tema: No consigo hacer un prompt en xml (Leído 4,806 veces)
|
lobopk2
Desconectado
Mensajes: 52
|
Estoy viendo unos videos de como se hace un script con la funcion prompt, pero es en html, yo uso xml y ahi es donde hay algo que no consigo encajar.
el ejemplo bueno es:
<script> var nombre=prompt("introduce tu nombre"); document.write("<p>"); document.write(nombre); document.write("</p>"); </script>
este script hace que me pida un nombre lo ponga y me salga en un parrafo, el problema que en xml, lo intente asi pero la etiqueta de texto es <text>
Incluso va encerrada con otra etiqueta <tspan>, pero esa la he quitado para simplificar y no pasa nada si la quito aun asi no me sale, algo algo mal, dejo el codigo ultimo de todos los que he intentado, para que me digan donde me equivoco y como lo deberia hacer.
<script> var nombre=prompt("escribe tu nombre"); document.write("<text id="text7" y="24.998508" x="47.671127" style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:7.05555534px;line-height:1.25;font-family:Acme;-inkscape-font-specification:Acme;font-variant-ligatures:normal;font-variant-position:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-alternates:normal;font-feature-settings:normal;text-indent:0;text-align:start;text-decoration:none;text-decoration-line:none;text-decoration-style:solid;text-decoration-color:#000000;letter-spacing:normal;word-spacing:normal;text-transform:none;writing-mode:lr-tb;direction:ltr;text-orientation:mixed;dominant-baseline:auto;baseline-shift:baseline;text-anchor:start;white-space:normal;shape-padding:0;opacity:1;vector-effect:none;fill:#ff00ff;fill-opacity:1;stroke:#000000;stroke-width:0.2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;" xml:space="preserve">"); document.write(nombre); document.write("</text>"); </script>
me imaginaba que tendria que ser algo asi, todos eso valores son los que le dan la forma a las letras, por eso es tan largo.
me he vuelto loco, es posible que sea una tonteria o algo mas importante, algun alma caritativa que me ayude?
|
|
|
En línea
|
|
|
|
Danielㅤ
Desconectado
Mensajes: 1.853
🔵🔵🔵🔵🔵🔵🔵
|
Hola, del código que has dejado el único detalle que noto es en esta línea: ahí abres la etiqueta "text" pero cuando la cierras?, es decir te falta éste caracter de cierre de esa etiqueta: Porque si la etiqueta es <text> si te fijas en el código está incompleta quedando <text y el > donde está? en el código no existe ese cierre. Saludos
|
|
|
En línea
|
|
|
|
EdePC
|
document.write es propio del DOM del HTML, no deberías utilizarlo dentro de un SVG. Aún en el DOM del HTML y por supuesto en el SVG se recomienda el uso de instrucciones más específicas, por ejemplo esto si debería funcionar: <svg width="200" height="100" style="border:solid"> @import url("https://fonts.googleapis.com/css2?family=Acme") var nombre = prompt('Escribe tu nombre'); var estilos = "font-size:30;font-family:Acme;fill:#ff00ff;stroke:#000;stroke-width:1;" var txt = document.getElementById("txt") txt.textContent = nombre; txt.setAttribute("style", estilos); </svg>
Otra cosa que estas haciendo mal es con los textos y las comillas, no puedes poner saltos de línea de esa manera a no ser que uses Template Strings ( `texto` ): var nombre = prompt(`Escribe tu nombre`); var estilos = `font-size:30; font-family:Acme; fill:#ff00ff; stroke:#000; stroke-width:1;` var txt = document.getElementById("txt"); txt.textContent = nombre; txt.setAttribute("style", estilos);
Tampoco puedes poner otras comillas dentro de comillas porque causa ambigüedad (esto está mal): var texto = "Hola soy "nuevo" aqui";
O escapas las comillas internas: var texto = "Hola soy \"nuevo\" aqui";
O te ayudas de las comillas simples: var texto = "Hola soy 'nuevo' aqui";
var texto = 'Hola soy "nuevo" aqui';
|
|
|
En línea
|
|
|
|
lobopk2
Desconectado
Mensajes: 52
|
Wow muchas gracias por vuestras respuestas.
Daniel si que esta el cierre debajo del todo donde pone "preserve"
EdePC muy buena explicacion aun no entiendo mucho, pero algo creo que comprendo con lo que me dices.
al parecer la instruccion que uso se usa para html y yo deberia de usar otra instruccion que es mas para xml, o eso entiendo.
Claro estoy viendo un video donde usan html, aunque algunas cosas si que me salen igual, pero esta en concreto me estaba dando problemas, la instruccion no tiene nada que ver.
ademas creo entender que en tu ejemplo usas los estilos de la fuenta en una variable y lo separas de la etiqueta, eso no sabia ni que se podia hacer.
En el fondo yo dibujo con el inkscape y cuando lo pongo en el chrome, conforme el programa lo escribe, la fuente se ve perfecta con todas caracteristicas y demas.
Lo de las comillas es un dato interesante que si que lei, aunque no me acordaba ni me fije por mi poca experiencia, entonces me estas diciendo que, esta parte de codigo por ejemplo...
document.write("<text id="text7" y="24.998508" x="47.671127"
esta mal? porque lleva muchas comillas?, deberia ir por ejemplo asi?
document.write("<text id=text7 y=24.998508 x=47.671127
aunque como digo el chrome lo enseña bien, pero claro igual para usar javascript, deberia ser asi, no? o eso entiendo.
lo del salto de linea no lo entendi muy bien.
bueno en cuanto tenga un rato voy a probar tu codigo para ver como funciona y le pillo la idea, aunque veo que aun tengo que aprender mejor las funciones.
el jaleo para mi es que si lo que leo es para html y para xml, son otras cosas, lo voy a tener mas dificil, ya que parece que hay menos informacion para el caso.
Repito gracias por la ayuda, comentare cuando pueda, como quede con lo que me habeis dicho,
|
|
|
En línea
|
|
|
|
lobopk2
Desconectado
Mensajes: 52
|
Bueno he copiado tu codigo tal cual me lo has puesto en un svg <svg width="200" height="100" style="border:solid"> <text id="txt" y="50" x="50"></text> <style> @import url(" https://fonts.googleapis.com/css2?family=Acme") </style> <script> var nombre = prompt('Escribe tu nombre'); var estilos = "font-size:30;font-family:Acme;fill:#ff00ff;stroke:#000;stroke-width:1;" var txt = document.getElementById("txt") txt.textContent = nombre; txt.setAttribute("style", estilos); </script> </svg> lo he abierto con el chrome y lo que veo es lo mimo que esta escrito pero en el navegador. no si si en la etiqueta text tenia que poner algo y puse hola, pero todo se ve igual con el hola que puse claro, no me pide que ingrese ningun nombre para que lo guarde ni nada. Haber yo creo que me pusisites un ejemplo para que lo entendiera, porque si eso funciona a mi no me funciona, puede ser?
|
|
|
En línea
|
|
|
|
EdePC
|
Si vas a guardar como .SVG independiente debes agregar el NameSpace SVG (xmlns): <svg xmlns="http://www.w3.org/2000/svg" width="200" height="100" style="border:solid"> <text id="txt" y="50" x="50"></text> <style> @import url("https://fonts.googleapis.com/css2?family=Acme") </style> <script> var nombre = prompt('Escribe tu nombre'); var estilos = "font-size:30;font-family:Acme;fill:#ff00ff;stroke:#000;stroke-width:1;" var txt = document.getElementById("txt") txt.textContent = nombre; txt.setAttribute("style", estilos); </script> </svg>
No es necesario agregar el NameSpace si el código SVG irá dentro de un HTML
|
|
|
En línea
|
|
|
|
lobopk2
Desconectado
Mensajes: 52
|
Muchas gracias, efectivamente si funciona, otra cosa que no tuve en cuenta en poner el namespace.
Hay que tener muchas cosas en cuenta, he????? jejejejej.
lo curioso es ver que guardas los estilos en una variable, seguire profundizando.
No obstante como no voy a trabajar con html, que trabajare con xml en svg, y veo que casi toda la informacion habla sobre html, al ver que en un xml, se necesitan instruciones diferentes para que funcione, sabrias decirme que es lo que deberia aprender sobre este tema para que no me vuelva a equivocar????.
Me refiero no estudiar xml, que eso ya lo entiendo, sino mas bien, si tengo que leer algo sobre el dom, como comentastes o si hay alguna pagina que hable de eso mas especifico.
Esque si voy a estar leyendo y leyendo y luego veo que es diferente me muero ajajajajajaj.
aunque el aprender no ocupa lugar, pero si ocupa tiempo jejejejeje.
gracias.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
No consigo hacer tablas
Sugerencias y dudas sobre el Foro
|
soplo
|
2
|
2,141
|
22 Octubre 2005, 13:34 pm
por soplo
|
|
|
No consigo hacer arp spoofing con Nemesis
Hacking
|
M3st4ng
|
5
|
5,020
|
3 Abril 2011, 15:13 pm
por wACtOr
|
|
|
no consigo hacer funcionar a shellexecute.
Programación C/C++
|
black_flowers
|
1
|
5,067
|
29 Marzo 2011, 13:03 pm
por d(-_-)b
|
|
|
No consigo hacer que mi ordenador arranque desde cd.
« 1 2 »
Windows
|
Crash_RPM
|
15
|
17,942
|
27 Diciembre 2011, 18:42 pm
por Randomize
|
|
|
No consigo hacer un mitm
Hacking
|
edwarrow
|
9
|
6,956
|
8 Enero 2017, 05:59 am
por engel lex
|
|