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


 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  [Resuelto]: Imprimir una variable de javascript en un title="" de html
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Resuelto]: Imprimir una variable de javascript en un title="" de html  (Leído 483 veces)
MiguelCanellas


Desconectado Desconectado

Mensajes: 580



Ver Perfil
[Resuelto]: Imprimir una variable de javascript en un title="" de html
« en: 7 Febrero 2020, 12:43 »

Estoy teniendo problemas para hacer esto, es que quiere imprimir una variable de javascript en html... generalmente lo que hago es..

Código
  1. "<script type='text/javascript'>document.write('este es el valor de mi variable');</script>"

pero ya si quiero usarlo en un atributo title=""

no me imprime el valor sino que me imprime la cadena....

¿existe algun truco para hacer esto?


« Última modificación: 22 Febrero 2020, 23:31 por #!drvy » En línea

EdePC
Colaborador
***
Desconectado Desconectado

Mensajes: 1.266



Ver Perfil
Re: [Pregunta]: Imprimir una variable de javascript en un title="" de html
« Respuesta #1 en: 7 Febrero 2020, 15:50 »

Saludos,

- Que yo sepa no se puede incrustar sentencias javascript dentro de valores de atributos, aunque quizá existan técnicas de XSS para estos XD.

- Lo que si puedes hacer es imprimir toda la etiqueta, por ejemplo:

-- No funciona:

Código
  1. <p title=<script>document.write('')</script>>Lorem ipsum dolor sit amet</p>

-- Si funciona:

Código
  1. <script>document.write('<p title="hola">')</script>Lorem ipsum dolor sit amet</p>


En línea

MiguelCanellas


Desconectado Desconectado

Mensajes: 580



Ver Perfil
Re: [Pregunta]: Imprimir una variable de javascript en un title="" de html
« Respuesta #2 en: 7 Febrero 2020, 16:10 »

mmm

no será que exista algun método parecido a esto? (esto no creo que exista xd es solamente para mostrar un poco la idea)

<script>var variable = 'esto es información';</script>
<p tittle="" script="this.title = variable;"></p>

Los inspire?  :xD :xD

EDIT:

ya casi lo termino, pero quiero que de entrada lo ponga y no cuando se haga un click, pero nose como hacerlo... ya falta poquito.... ¿alguna ayudita?
Código
  1. <script type="text/javascript">var variable = 'mi variable';</script>
  2. <p title="texto" onclick="this.title = variable;"><script type="text/javascript">document.write(variable);</script></p>
  3.  

EDIT 2:

ya está.
Código
  1. <script type="text/javascript">var variable = 'mi variable';</script>
  2. <p title="texto" onmouseover="this.title = variable;"><script type="text/javascript">document.write(variable);</script></p>
  3.  
« Última modificación: 7 Febrero 2020, 16:40 por MiguelCanellas » En línea

WHK
CoAdmin
***
Desconectado Desconectado

Mensajes: 6.288


The Hacktivism is not a crime


Ver Perfil WWW
Re: [Pregunta]: Imprimir una variable de javascript en un title="" de html
« Respuesta #3 en: 7 Febrero 2020, 17:00 »

En jQuery:

Código
  1. <!DOCTYPE html>
  2.    <head>
  3.        <title></title>
  4.        <script>
  5.            $(document).ready(function(){
  6.  
  7.                variable = 'mi variable';
  8.  
  9.                $('#changeme')
  10.                    .mouseover(function(){
  11.                        $(this).attr('title', variable);
  12.                    })
  13.                    .text(variable); // Texto y no HTML, evita XSS
  14.            });
  15.        </script>
  16.    </head>
  17.    <body>
  18.        <p id="changeme" title="texto"></p>
  19.    </body>
  20. </html>

Recuerda que en un buen desarrollo debes separar el tipo de código, por ejemplo el código javascript debería estar en un archivo js separado del html al igual que el css.

Saludos.

En línea

Telegram: @WHK102
MinusFour
Colaborador
***
Desconectado Desconectado

Mensajes: 4.897


I'm fourth.


Ver Perfil WWW
Re: [Pregunta]: Imprimir una variable de javascript en un title="" de html
« Respuesta #4 en: 7 Febrero 2020, 17:08 »

Yo creo que lo mejor sería que usaras un framework como React, Vue, Angular, etc si vas a querer mezclar JS con HTML syntacticamente.
En línea

MiguelCanellas


Desconectado Desconectado

Mensajes: 580



Ver Perfil
Re: [Pregunta]: Imprimir una variable de javascript en un title="" de html
« Respuesta #5 en: 7 Febrero 2020, 17:25 »

En jQuery:

Código
  1. <!DOCTYPE html>
  2.    <head>
  3.        <title></title>
  4.        <script>
  5.            $(document).ready(function(){
  6.  
  7.                variable = 'mi variable';
  8.  
  9.                $('#changeme')
  10.                    .mouseover(function(){
  11.                        $(this).attr('title', variable);
  12.                    })
  13.                    .text(variable); // Texto y no HTML, evita XSS
  14.            });
  15.        </script>
  16.    </head>
  17.    <body>
  18.        <p id="changeme" title="texto"></p>
  19.    </body>
  20. </html>

Recuerda que en un buen desarrollo debes separar el tipo de código, por ejemplo el código javascript debería estar en un archivo js separado del html al igual que el css.

Saludos.



Entiendo, pero como la verdad no quiero trabajar con id="" o class="" para este caso en especifico me sirve más esa manera, muchas gracias a los 3.
En línea

@XSStringManolo
Colaborador
***
Desconectado Desconectado

Mensajes: 2.072


Turn off the red ligth


Ver Perfil WWW
Re: [Pregunta]: Imprimir una variable de javascript en un title="" de html
« Respuesta #6 en: 8 Febrero 2020, 00:47 »

Estoy teniendo problemas para hacer esto, es que quiere imprimir una variable de javascript en html... generalmente lo que hago es..

"<script type='text/javascript'>document.write('este es el valor de mi variable');</script>"

pero ya si quiero usarlo en un atributo title=""

no me imprime el valor sino que me imprime la cadena....

¿existe algun truco para hacer esto?
Si te explicas mejor y exactamente oo que quieres hacer y con que objetivo te digo cual creo que es la solución correcta para cumplir ese objetivo.

Según el standart el script type= no es necesario desde hace muchos años. Hace algún tiempo si era recomendado añadirlo para servidores. Ya no.

Si quieres meter javascript dentro de html sin que se interprete, usa html entities o text nodes junto a createElement y appendChild. Si quieres meter html dentro de javascript es lo mismo. Para seleccionar atributos usa el querySelector que pilla como parámetro los mimos selectores que usas en css.

Como te dice WHK los archivos javascript deben ir separados completamente del html. Es decir usar <button type="button" onlick="MiFuncion()">click</click> es mala práctica. Todo el javascript debe ir externo.

archivo.js
let eventoBotón = getElementsByTagName("button")[0].addEventListener("click", function(){MiFuncion()});

o boton.onclick también es válido.

Deberías añadir CSP en la cabecera de respuesta de tu servidor para evitar que se incluyan archivos externos mediante inyecciones y opcionalmente en el propio documento HTML como meta tag. Lo mismo para el resto de archivos.
En línea

Flamer


Desconectado Desconectado

Mensajes: 1.026


crack, crack y mas crack...


Ver Perfil WWW
Re: [Pregunta]: Imprimir una variable de javascript en un title="" de html
« Respuesta #7 en: 8 Febrero 2020, 17:04 »

creo que quieres imprimir valores en la etiqueta title creo que seria asi

Código
  1. document.title="valores" + x;
  2.  

bueno pero mejor te pongo un ejemplo para que veas como funciona

Código
  1. <html>
  2. <head>
  3. <title>Tiempo: 0</title>
  4. <body>
  5. <script>
  6. var x;
  7. var s=0;
  8. setTimeout("segundo()",1000);
  9. function segundo()
  10. {
  11.   s++;
  12.   document.title="Tiempo: " + s;
  13.   setTimeout("segundo()",1000);
  14. }
  15. </script>
  16. </body>
  17. </html>
  18.  

dime si es eso
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines