Estoy desarrollando la extensión de Chrome en consecuencia, uno de los requisitos es capturar los detectores de eventos que se activan en el iframe relevante a través del script de contenido inyectado en cada iframe. Ahí es cuando ocurre el evento de clic en el iframe y necesito llevarlo a la extensión. El siguiente diagrama muestra cómo existe la página web relacionada con mis iframes y cómo se inyectan los scripts de contenido.
El problema es que quiero obtener los eventos en el último iframe de frameReports (ver imagen de arriba). Cada iframe anterior tiene los scripts de contenido correctos inyectados, excepto frameReports. frameReports solo tiene un script de contenido. El script de contenido relevante no se inyecta, por lo que no puedo capturar el evento activado en el iframe.
Pero cuando elimino temporalmente el iframe relevante del DOM a través de devtools, todos los scripts de contenido relevantes se inyectaron correctamente. ¿Cuál es la razón para esto? Estoy usando la versión 2 del manifiesto. Incluiré los archivos relevantes a continuación.
Manifiesto.json
{ "name": "Test", "version": "1.0.0", "manifest_version": 2, "description": "My Extension", "background": { }, "permissions": ["tabs", "activeTab", "webRequest", "<all_urls>", "http://*/*", "https://*/*", ], "content_security_policy": "script-src 'self'; object-src 'self'", "content_scripts": [ { "all_frames": true, "matches": ["http://*/*", "https://*/*", "file://*/*"], "js": ["contentScript.js"], "match_about_blank": true } ], "options_ui": { "page": "options/options.html" }, "web_accessible_resources": ["icons/icon.png"] }contentScript.js
document.addEventHandler('click', function (event) { if (event.button == 0 && event.isTrusted) { var target = event.target; // Code goes here } });