这是一个在 Tampermonkey 上运行的 javascript 脚本
我无法在定时函数之外使用 const idElement。
我需要在 sendEmail 函数中使用 get 的值。我无法在 sendEmail 函数中使用 getElementbyId 我必须放置计时器,因为我需要使用此脚本的页面加载非常奇怪(连续 3 或 4 次)。
当我将sendEmail放入定时函数中时,该值是in。
我尝试将 sendEmail 放入定时函数中,但我需要一个按钮来启动 sendEmail 而不是定时功能。
“recup”在这里是因为尝试验证我是否可以使用它(idElement),但只能通过定时函数。
(function() {
'use strict';
// Créer le bouton
var emailButton = document.createElement('button');
emailButton.innerText = 'Envoyer un e-mail';
emailButton.style.position = 'fixed';
emailButton.style.bottom = '20px';
emailButton.style.right = '20px';
emailButton.style.zIndex = '9999';
emailButton.style.padding = '10px';
emailButton.style.backgroundColor = '#a83232';
emailButton.style.color = 'white';
emailButton.style.border = 'none';
emailButton.style.borderRadius = '5px';
emailButton.style.cursor = 'pointer';
const idElement = "rien";
function recup(idElement) {
if (idElement) {
console.log('Valeur de l\'input:', idElement);
} else {
console.log('Élément input introuvable.');
}
}
window.addEventListener('load', function() {
// Utilisez setTimeout pour afficher le message après 1 minute (60000 millisecondes)
setTimeout(function() {
const idElement = document.getElementById('application-AccessManagement-Display-component---accessManagementPhase--accessmanagement_01_01_01-defaultXML--internationalCode-inner').value;
console.log(idElement);
return idElement;
emailButton.style.backgroundColor = '#38a832';
}, 10000);
});
// Ajouter le bouton à la page
document.body.appendChild(emailButton);
// Fonction pour ouvrir l'application de messagerie par défaut avec des informations pré-remplies
function sendEmail(idElement) {
var destinataire = 'kevin';
var recipient = '[email protected]';
var subject = 'Sujet de l\'e-mail';
// Variables que vous pouvez définir
var variable2 = 'Valeur de la variable 2';
var variable3 = 'Valeur de la variable 3';
// ... Ajoutez plus de variables si nécessaire
// Corps de l'e-mail avec les variables
var body = 'Contenu de l\'e-mail :\n\n';
body += 'Variable 1 : ' + idElement + '\n';
body += 'Variable 2 : ' + variable2 + '\n';
body += 'Variable 3 : ' + variable3 + '\n';
var mailtoLink = 'mailto:' + recipient + '?subject=' + encodeURIComponent(subject) + '&body=' + encodeURIComponent(body);
window.location.href = mailtoLink;
};
// Ajouter l'événement de clic au bouton
emailButton.addEventListener('click', sendEmail(idElement));
// Appeler la fonction recup lorsque la page est complètement chargée
//document.addEventListener('DOMContentLoaded', recup);
})();
改变
emailButton.addEventListener('click', sendEmail(idElement));
到
emailButton.addEventListener('click', () => { sendEmail() });
或者只是
emailButton.addEventListener('click', sendEmail);
由于您立即调用 sendmail,因此您添加了事件 -
然后将
function sendEmail(idElement) {
更改为function sendEmail() {
,让函数访问全局变量。
然后还要从函数内部的
const
中删除const idElement
,并将全局变量更改为let idElement
该函数可能如下所示
(function() {
'use strict';
// Créer le bouton
var emailButton = document.createElement('button');
emailButton.innerText = 'Envoyer un e-mail';
emailButton.style.position = 'fixed';
emailButton.style.bottom = '20px';
emailButton.style.right = '20px';
emailButton.style.zIndex = '9999';
emailButton.style.padding = '10px';
emailButton.style.backgroundColor = '#a83232';
emailButton.style.color = 'white';
emailButton.style.border = 'none';
emailButton.style.borderRadius = '5px';
emailButton.style.cursor = 'pointer';
let idElement = "rien"; // accessible from the whole IIFE
window.addEventListener('DOMContentLoaded', function() {
// Utilisez setTimeout pour afficher le message après 10 secondes
setTimeout(function() {
idElement = document.getElementById('application-AccessManagement-Display-component---accessManagementPhase--accessmanagement_01_01_01-defaultXML--internationalCode-inner').value; // sett the global value
console.log(idElement);
// return idElement; // this does nothing!
emailButton.style.backgroundColor = '#38a832';
}, 10000);
});
// Ajouter le bouton à la page
document.body.appendChild(emailButton);
// Fonction pour ouvrir l'application de messagerie par défaut avec des informations pré-remplies
function sendEmail() {
var destinataire = 'kevin';
var recipient = '[email protected]';
var subject = 'Sujet de l\'e-mail';
// Variables que vous pouvez définir
var variable2 = 'Valeur de la variable 2';
var variable3 = 'Valeur de la variable 3';
// ... Ajoutez plus de variables si nécessaire
// Corps de l'e-mail avec les variables
var body = 'Contenu de l\'e-mail :\n\n';
body += 'Variable 1 : ' + idElement + '\n'; // from the global variable
body += 'Variable 2 : ' + variable2 + '\n';
body += 'Variable 3 : ' + variable3 + '\n';
var mailtoLink = 'mailto:' + recipient + '?subject=' + encodeURIComponent(subject) + '&body=' + encodeURIComponent(body);
window.location.href = mailtoLink;
};
// Ajouter l'événement de clic au bouton
emailButton.addEventListener('click', sendEmail);
})();