Tengo un pequeño fragmento que está dentro de iframe y genera una etiqueta html de secuencia de comandos y la agrega a window.top.document.head.
Ahora quiero saber cómo compruebo desde Potato.js desde qué iframe se generó una vez que ya está cargado.
<!DOCTYPE html> <html lang="en"> <head> </head> <body> <iframe> <!DOCTYPE html> <html> <head> </head> <body> <script> (function() { var s = document.createElement('script'); s.setAttribute('type','text/javascript'); s.setAttribute('src','https://test.com/potato.js'); window.top.document.head.appendChild(s); })(); </script> </body> </html> </iframe> </body> </html>Editar: no puedo cambiar este código dentro del iframe
Esa información no se almacena automáticamente.
La única forma que se me ocurre sería agregar un accesorio de expansión al script con una referencia a la ventana actual (es decir, la ventana del marco)...
s.sourceWindow = window;… luego lea eso desde dentro de potato.js …
const sourceWindow = document.currentScript.sourceWindow; … y luego recorra todos los marcos ( window.frames ) en busca de una coincidencia.
Dado que está utilizando window.top y no window.parent , es posible que deba ser recursivo allí.