Maison >interface Web >js tutoriel >Pourquoi ma fonction onclick en ligne ne fonctionne-t-elle pas dans une extension Chrome/Firefox ?

Pourquoi ma fonction onclick en ligne ne fonctionne-t-elle pas dans une extension Chrome/Firefox ?

DDD
DDDoriginal
2024-12-28 10:09:15167parcourir

Why Doesn't My Inline onclick Function Work in a Chrome/Firefox Extension?

le script onclick ou en ligne dans l'extension ne fonctionne pas

Problème :

dans l'extension, la fonction onClick ne parvient pas à remplir la fonction prévue, bien que dans les navigateurs standards, elle fonctionne correctement.

Exemple de code :

function hellYeah(text) {
  document.getElementById("text-holder").innerHTML = text;
}
<!doctype html>
<html>
  <head>
    <title>Getting Started Extension's Popup</title>
    <script src="popup.js"></script>
  </head>
  <body>
    <div>

Lorsque l'utilisateur clique sur "hyhy", "ha" doit être remplacé par "xxx", mais dans l'extension, il ça ne marche pas.

Réponse :

Les extensions Chrome et Firefox WebExtensions n'autorisent pas le JavaScript en ligne. Par conséquent, vous devez utiliser d’autres méthodes pour lier les événements.

Une solution consiste à attribuer un identifiant au lien (par exemple, ) et à lier l'événement à l'aide de addEventListener dans le fichier popup.js :

document.addEventListener('DOMContentLoaded', function() {
    var link = document.getElementById('link');
    // 点击逻辑如下:
    link.addEventListener('click', function() {
        hellYeah('xxx');
    });
});

Assurez-vous que le popup .js Chargé en tant que fichier de script séparé :

<script src="popup.js"></script>

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn