Saltar al contenido

El script onclick o en línea no funciona en la extensión

Agradeceríamos tu apoyo para compartir nuestros ensayos sobre las ciencias informáticas.

Las extensiones de Chrome no le permiten tener JavaScript en línea (documentación).
Lo mismo ocurre con Firefox WebExtensions (documentación).

Vas a tener que hacer algo similar a esto:

Asignar una identificación al enlace ( se convierte en ), y use addEventListener para vincular el evento. Pon lo siguiente en tu popup.js Archivo:

document.addEventListener('DOMContentLoaded', function() 
    var link = document.getElementById('link');
    // onClick's logic below:
    link.addEventListener('click', function() 
        hellYeah('xxx');
    );
);

popup.js debe cargarse como un archivo de script separado:


Razón

Esto no funciona, porque Chrome prohíbe cualquier tipo de código en línea en extensiones a través de la Política de seguridad de contenido.

No se ejecutará JavaScript en línea. Esta restricción prohíbe tanto en línea


Alternativa si está usando jQuery:

// jQuery
$(document).ready(function() 
  $("#click-this").click(handler);
);

Relajando la política

Q: El error menciona formas de permitir código en línea. No quiero / no puedo cambiar mi código, ¿cómo habilito los scripts en línea?

A: A pesar de lo que dice el error, no puede habilitar secuencia de comandos en línea:

No existe ningún mecanismo para relajar la restricción contra la ejecución de JavaScript en línea. En particular, establecer una política de secuencias de comandos que incluya 'unsafe-inline' no tendrá ningún efecto.

Actualizar: Desde Chrome 46, es posible incluir en la lista blanca bloques de código en línea específicos:

A partir de Chrome 46, los scripts en línea se pueden incluir en la lista blanca especificando el hash codificado en base64 del código fuente en la política. Este hash debe tener el prefijo del algoritmo hash utilizado (sha256, sha384 o sha512). Consulte el uso de Hash para

decir ah

hyhy

popup.js

window.onclick = function(event) 
    var target = event.target ;
    if(target.matches('.clickableBtn')) 
        var clickedEle = document.activeElement.id ;
        var ele = document.getElementById(clickedEle);
        alert(ele.text);
    

O si tiene un archivo Jquery incluido, entonces

window.onclick = function(event) 
    var target = event.target ;
    if(target.matches('.clickableBtn')) 
        alert($(target).text());
    

Te invitamos a añadir valor a nuestra información cooperando tu veteranía en las ilustraciones.

¡Haz clic para puntuar esta entrada!
(Votos: 2 Promedio: 4.5)


Tags :

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *