Pregunta rápida

Iniciado por Leguim, 24 Septiembre 2020, 04:14 AM

0 Miembros y 1 Visitante están viendo este tema.

Leguim

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 (html) [Seleccionar]

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


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.

@XSStringManolo

#1
Código (javascript) [Seleccionar]
<html>
<body>
<iframe src="x"></iframe>
<iframe src="http://x"></iframe>
<script>
function obtenerAtributo(selector, atributo, i = 0, aux = []) {
 for(selector = document.querySelectorAll(selector); i < selector.length; ++i) {
   aux.push(selector[i][atributo]);
 }
 return aux;
}


alert(
 obtenerAtributo("iframe", "src")[0]
);

</script>
</body>
</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 (javascript) [Seleccionar]
alert(
 obtenerAtributo("iframe", "outerHTML", 0,
   obtenerAtributo("iframe", "src", 0 ,
     obtenerAtributo("script", "innerHTML")
   )
 )                                                                  
);

Drakaris

con jquery:
Código (jquery) [Seleccionar]

  $("iframe").attr("src")
Lo increible, no es lo que ves, sino como es