Estoy inyectando un botón a través del script de contenido de mi extensión de Chrome como este:
btnHtml += '<button id="btn1" style="background-color: #2c3f82; height: 25px; width: 50px; text-align: center; cursor: pointer; border-radius: 4px; color: white; border: 1px solid rgba(0, 0, 0, 0.8); font-size: 15px; margin: 2px;">someText</button>' const div = document.createElement('div'); div.className = 'ownSizes'; div.innerHTML = '<div style="display: inline-grid; grid-template-columns: auto auto auto auto; background-color: #1d76ce; border-radius: 8px; padding: 10px;">'+btnHtml+'</div>'; document.getElementsByClassName('_4NtqZU')[0].appendChild(div);Eso funciona bien. Ahora, ¿cómo puedo agregar una función al botón? ¿Tengo que inyectar un nuevo js en la página o hay una manera más fácil?
Creo que el problema que tiene se debe a que no puede alcanzar su alcance porque está agregando el elemento inyectando cadenas de html.
Alternativamente, puede crear el botón usando la función createElement para obtener un nodo real que puede inyectar en la página.
let btn = document.createElement('button' [, options]);Luego puede vincular su evento de clic desde el alcance actual
btn.onclick = //some functionPor último, inyecte en la página usando appendChild como lo hizo en su pregunta.