Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: Leguim en 24 Septiembre 2020, 04:14 am



Título: Pregunta rápida
Publicado por: Leguim en 24 Septiembre 2020, 04:14 am
Hola,

como puedo obtener la cadena o lo que este dentro de src="x" en este caso sería 'x' el dato...
a partir de un iframe.

Código
  1. <iframe src="x"></iframe> // el dato que la función debería devolver sería 'x'
  2.  

No importa si es JS o PHP, es para automatizar algo que estoy haciendo y me toma más tiempo tener que estar copiando esa parte de forma manual y después pegarla donde necesito. En cambio de esta manera se me aligera la carga.

Grarcias.


Título: Re: Pregunta rápida
Publicado por: @XSStringManolo en 24 Septiembre 2020, 04:58 am
Código
  1. <html>
  2. <body>
  3. <iframe src="x"></iframe>
  4. <iframe src="http://x"></iframe>
  5. <script>
  6. function obtenerAtributo(selector, atributo, i = 0, aux = []) {
  7.  for(selector = document.querySelectorAll(selector); i < selector.length; ++i) {
  8.    aux.push(selector[i][atributo]);
  9.  }
  10.  return aux;
  11. }
  12.  
  13.  
  14. alert(
  15.  obtenerAtributo("iframe", "src")[0]
  16. );
  17.  
  18. </script>
  19. </body>
  20. </html>

Te hice esta función bastante completa y sencilla.

El primer parámetro es un selector css. Exactamente el mismo texto que le pasas a $("texto")
El segundo parámetro es el atributo que quieres en texto.
El tercer parámetro es el iterador del bucle, si lo omites empieza en 0.
El cuarto parámetro es un array. Puedes mandarle alguno para ahorrarte un join si juntas info. A parte lo utilizo para evitar crear una variable dentro de la función.

Se te retorna un array con el/los valor/es del/los atributo/s que le pediste. Puedes trabajar directamente con un valor añadiendo el índice como en el ejemplo. O puedes imprimirlos todos si quitas el índice.

También puedes hacer llamadas a si misma para obtener varios atributos.
Código
  1. alert(
  2.  obtenerAtributo("iframe", "outerHTML", 0,
  3.    obtenerAtributo("iframe", "src", 0 ,
  4.      obtenerAtributo("script", "innerHTML")
  5.    )
  6.  )                                                                  
  7. );


Título: Re: Pregunta rápida
Publicado por: Drakaris en 24 Septiembre 2020, 12:10 pm
con jquery:
Código
  1.  $("iframe").attr("src")
  2.