Tengo un código que, en resumen, abre un iframe (llamémoslo iframe1) para ver un archivo pdf, y ese pdf se muestra en un iframe (llamémoslo iframe2), me gustaría poder obtener el fuente del iframe2 que está dentro de un iframe1 que se abriría para que el iframe1 en sí sea solo el src del pdf iframe2 y no 2 iframes diferentes. Las URL son muy diferentes.
¿Cuál es la mejor manera de hacer esto?
Tengo una función open_iframe que se parece a
function open_iframe(url) { return '<iframe id="iframe" src="' + url + '" width=100% height=100% frameborder="0" allowfullscreen></iframe>'; }y estoy escribiendo otra función que es
function find_file_url(url) { let iframe = this.open_iframe(url); return iframe.contentWindow.document.getElementsByTagName('iframe')[0].src; }También tengo Jquery disponible para usar también.
¿Es esto algo que es posible?
¿Hay un mejor enfoque?
¡Gracias por adelantado!
¿Has adjuntado el objeto iframe a tu dom? En esta etiqueta html para "iframe" en lugar de crear una cadena html, puede crear el objeto dom iframe directamente y asignarles atributos y luego analizarlo más. Como dijo Barmar hasta entonces, se consideraría solo una cadena html. .document.getElementsByTagName('iframe') será un elemento nulo ya que no está adjunto al objeto del documento.
Puede probar document.domain = "site.com" , estoy lidiando con un problema similar. Esto asegurará que estén en el mismo dominio.
También puede usar secuencias de comandos iframe.contentWindow e iframe.contentDocument para comunicarse dentro del marco anidado.
también asigne onload , errorOnload a los atributos para el seguimiento de la consola