B
blankito1998
Beta
Verificado por Whatsapp
¡Usuario con pocos negocios! ¡Utiliza siempre saldo de Forobeta!
una duda, me muestra el codigo solamente cuando le doy a refrescar?Para mostrar los enlaces de los iframes en un campo de entrada de texto (<input>
) en lugar de como enlaces (<a>
), debemos hacer algunos cambios en el código depopup.js
.
### Actualización depopup.html
Primero, modifica tupopup.html
para incluir un campo de entrada de texto.
HTML:<!DOCTYPE html> <html> <head> <title>Enlaces de Iframe</title> <script src="popup.js" defer></script> </head> <body> <h1>Enlaces de Iframe</h1> <button id="refreshButton">Refrescar Lista</button> <div id="linksContainer"></div> </body> </html>
### Actualización depopup.js
Ahora, actualicemos el archivopopup.js
para usar un campo de entrada de texto en lugar de etiquetas de enlace:
JavaScript:document.addEventListener('DOMContentLoaded', function() { const linksContainer = document.getElementById('linksContainer'); const refreshButton = document.getElementById('refreshButton'); function obtenerYMostrarEnlacesIframes() { chrome.tabs.query({ active: true, currentWindow: true }, function(tabs) { chrome.scripting.executeScript( { target: { tabId: tabs[0].id }, function: obtenerEnlaces }, (results) => { const iframeLinks = results[0].result || []; mostrarEnlaces(iframeLinks); } ); }); } function mostrarEnlaces(iframeLinks) { linksContainer.innerHTML = ''; // Limpiar el contenedor antes de agregar if (iframeLinks.length) { iframeLinks.forEach((link) => { const inputElement = document.createElement('input'); inputElement.type = 'text'; inputElement.value = link; // Valor del input es el enlace inputElement.style.width = '100%'; // Opcional: hacer el input más ancho linksContainer.appendChild(inputElement); linksContainer.appendChild(document.createElement('br')); // Salto de línea }); } else { linksContainer.textContent = 'No se encontraron iframes.'; console.log("No se encontraron iframes."); // Agregar un log } } // Función para obtener enlaces de iframes en la página actual function obtenerEnlaces() { return Array.from(document.getElementsByTagName('iframe')).map(iframe => iframe.src); } // Mostrar enlaces al cargar el popup obtenerYMostrarEnlacesIframes(); // Evento para refrescar la lista al hacer clic en el botón refreshButton.addEventListener('click', obtenerYMostrarEnlacesIframes); });
### Resumen de Cambios:
1. Campo de Entrada de Texto: Del código anterior se ha eliminado el uso de<a>
y se ha cambiado por un<input type="text">
, donde el valor del input será el enlace del iframe.
2. Estilo Opcional: Se añadió un estilo para que el campo de entrada ocupe todo el ancho disponible, pero puedes ajustarlo según tus preferencias.
### Pasos para Probar:
1. Guarda los cambios en los archivospopup.html
ypopup.js
.
2. Recarga la extensión en [chrome://extensions/](chrome://extensions/).
3. Abre una página web que contenga iframes.
4. Haz clic en el ícono de tu extensión y verifica si los enlaces aparecen correctamente en campos de entrada de texto.
5. Prueba el botón "Refrescar Lista" para asegurarte de que se actualice la lista de iframes.
Con esto, ahora deberías ver los enlaces de los iframes en campos de texto en lugar de enlaces clicables. Si necesitas más ayuda o ajustes, ¡dímelo!