elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  No consigo hacer un prompt en xml
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: No consigo hacer un prompt en xml  (Leído 4,005 veces)
lobopk2

Desconectado Desconectado

Mensajes: 52


Ver Perfil
No consigo hacer un prompt en xml
« en: 31 Enero 2022, 23:46 pm »

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 Desconectado

Mensajes: 1.680


🔵🔵🔵🔵🔵🔵🔵


Ver Perfil
Re: No consigo hacer un prompt en xml
« Respuesta #1 en: 1 Febrero 2022, 00:01 am »

Hola, del código que has dejado el único detalle que noto es en esta línea:

Código:
document.write("<text

ahí abres la etiqueta "text" pero cuando la cierras?, es decir te falta éste caracter de cierre de esa etiqueta:

Código:
>

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
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.067



Ver Perfil
Re: No consigo hacer un prompt en xml
« Respuesta #2 en: 1 Febrero 2022, 02:23 am »

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:

Código
  1. <svg width="200" height="100" style="border:solid">
  2.  <text id="txt" y="50" x="50"></text>
  3.  <style>
  4.    @import url("https://fonts.googleapis.com/css2?family=Acme")
  5.  </style>
  6.  <script>
  7.    var nombre = prompt('Escribe tu nombre');
  8.    var estilos = "font-size:30;font-family:Acme;fill:#ff00ff;stroke:#000;stroke-width:1;"
  9.    var txt = document.getElementById("txt")
  10.    txt.textContent = nombre;
  11.    txt.setAttribute("style", estilos);
  12.  </script>
  13. </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` ):

Código
  1.    var nombre = prompt(`Escribe tu nombre`);
  2.    var estilos = `font-size:30;
  3.                   font-family:Acme;
  4.                   fill:#ff00ff;
  5.                   stroke:#000;
  6.                   stroke-width:1;`
  7.    var txt = document.getElementById("txt");
  8.    txt.textContent = nombre;
  9.    txt.setAttribute("style", estilos);

Tampoco puedes poner otras comillas dentro de comillas porque causa ambigüedad (esto está mal):

Código
  1. var texto = "Hola soy "nuevo" aqui";

O escapas las comillas internas:

Código
  1. var texto = "Hola soy \"nuevo\" aqui";

O te ayudas de las comillas simples:

Código
  1. var texto = "Hola soy 'nuevo' aqui";

Código
  1. var texto = 'Hola soy "nuevo" aqui';
En línea

lobopk2

Desconectado Desconectado

Mensajes: 52


Ver Perfil
Re: No consigo hacer un prompt en xml
« Respuesta #3 en: 1 Febrero 2022, 23:32 pm »

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 Desconectado

Mensajes: 52


Ver Perfil
Re: No consigo hacer un prompt en xml
« Respuesta #4 en: 1 Febrero 2022, 23:50 pm »

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
Moderador Global
***
Desconectado Desconectado

Mensajes: 2.067



Ver Perfil
Re: No consigo hacer un prompt en xml
« Respuesta #5 en: 2 Febrero 2022, 01:01 am »

Si vas a guardar como .SVG independiente debes agregar el NameSpace SVG (xmlns):

Código
  1. <svg xmlns="http://www.w3.org/2000/svg" width="200" height="100" style="border:solid">
  2.  <text id="txt" y="50" x="50"></text>
  3.  <style>
  4.    @import url("https://fonts.googleapis.com/css2?family=Acme")
  5.  </style>
  6.  <script>
  7.    var nombre = prompt('Escribe tu nombre');
  8.    var estilos = "font-size:30;font-family:Acme;fill:#ff00ff;stroke:#000;stroke-width:1;"
  9.    var txt = document.getElementById("txt")
  10.    txt.textContent = nombre;
  11.    txt.setAttribute("style", estilos);
  12.  </script>
  13. </svg>

No es necesario agregar el NameSpace si el código SVG irá dentro de un HTML
En línea

lobopk2

Desconectado Desconectado

Mensajes: 52


Ver Perfil
Re: No consigo hacer un prompt en xml
« Respuesta #6 en: 2 Febrero 2022, 12:01 pm »

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

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
No consigo hacer tablas
Sugerencias y dudas sobre el Foro
soplo 2 1,928 Último mensaje 22 Octubre 2005, 13:34 pm
por soplo
No consigo hacer arp spoofing con Nemesis
Hacking
M3st4ng 5 4,758 Último mensaje 3 Abril 2011, 15:13 pm
por wACtOr
no consigo hacer funcionar a shellexecute.
Programación C/C++
black_flowers 1 4,737 Último mensaje 29 Marzo 2011, 13:03 pm
por d(-_-)b
No consigo hacer que mi ordenador arranque desde cd. « 1 2 »
Windows
Crash_RPM 15 16,961 Último mensaje 27 Diciembre 2011, 18:42 pm
por Randomize
No consigo hacer un mitm
Hacking
edwarrow 9 6,395 Último mensaje 8 Enero 2017, 05:59 am
por engel lex
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines