Comment changer une fonction d'alerte par fonction de rempli
mahdiweb Messages postés 13 Statut Membre -
Bonjour,
dans mon extension chrome j'ai les codes ci-dessous qui affichent correctement les alertes :
manifeste.json
{
"name": "Zero",
"version": "1.0",
"manifest_version": 3,
"description": "Auto fill form GRC",
"icons": {
"16": "icon/icon.png",
"48": "icon/icon.png",
"128": "icon/icon.png"
},
"action": {
"default_popup": "index.html",
"default_icon": "icon/icon.png"
},
"options_page": "options.html",
"content_scripts": [
{
"matches" : [
"http://*/*",
"https://*/*"
],
"js": ["jquery-3.6.0.min.js", "popup.js"]
}
],
"permissions": [
"activeTab",
"storage",
"scripting",
"tabs",
"clipboardWrite",
"notifications",
"contextMenus"
]
}
index.html
<!doctype html>
<html>
<head>
<style>
body {
min-width: 120px;
overflow-x: hidden;
font-family: Arial, sans-serif;
font-size: 12px;
}
input, textarea {
width: 140px;
}
input#save {
font-weight: bold; width: auto;
}
</style>
</head>
<body>
<h1>GRC</h1>
<center><form>
<div>
<label><b>Veuillez saisir un code</b></label>
<input name="inpt" id="inpt" autocomplete="off"/>
<p>
<button id="btn">Enter</button>
<script src="popup.js"></script>
</p>
</div>
</form></center>
</body>
</html>
popup.js
const button = document.getElementById('btn');
const input = document.getElementById('inpt');
button.onclick = () => {
functions[input.value]();
};
functions = {
1: function () { alert(1); },
2: function () { alert(2); },
3: function () { alert(3); },
4: function () { alert(4); },
5: function () { alert(5); },
6: function () { alert(6); },
}
Je souhaite garder le même principe, c'est à dire saisir un code dans le champ texte de la page index.html et lancer une fonction, mais je souhaite remplacer les fonctions d'alerte par des fonctions de remplissage comme suit :
à la place de
1: function () { alert(1); },
Je veux mettre
1: function () {
var element = document.getElementById('select1');
var element = document.getElementById('select2');
if (element != null && element.value == '') {
const select1 = document.getElementById('select1');
const select2 = document.getElementById('select2');
select1.addEventListener('change', () => {
select2.removeAttribute('disabled');
});
setTimeout(() => {
select1.value = '2: Object';
select1.dispatchEvent(new Event("change"));
}, 1E3);
setTimeout(() => {
select2.value = '1: Object';
select2.dispatchEvent(new Event("change"));
}, 2E3);
},
Lorsque j'ai fait le test avec la méthode que je viens de mentionner, j'ai reçu le message d'erreur suivant :
Existe-t-il une solution qui me permette de le faire. Je suis assez nouveau dans tout cela, donc toute aide serait très appréciée.
Windows / Chrome 91.0.4472.77
- Comment changer une fonction d'alerte par fonction de rempli
- Changer dns - Guide
- Fonction si et - Guide
- Fausse alerte mcafee - Accueil - Piratage
- Fonction remplacer sur word - Guide
- Document rempli - Guide
3 réponses
Bonjour vérifie ton code, il manque soit un "{" ou une "(" quelque part.
C'est surligné en jaune dans ta capture d'écran.
Bonjour
var element = document.getElementById('select1');
var element = document.getElementById('select2');
Si tu utilises le même nom de variable pour deux choses forcément ça marchera moins bien
Bonjour @jordane45,
même si je met seulement le code suivant par exemple:
document.getElementById('select1').value = '3: Object';
et donc la fonction devient
functions = {
1: function () { document.getElementById('categorisation_1').value = '9: Object';},
2: function () { alert(2); },
3: function () { alert(3); },
4: function () { alert(4); },
5: function () { alert(5); },
6: function () { alert(6); },
}
mais ça ne marche toujours pas et maintenant j'ai le message d'erreur suivant :


oui effectivement merci il y a un "}" qui manque et je n'ai aucun message d'erreur maintenant, mais la fonction ne se déclenche toujours pas.