Salut,
Avez-vous une idée de la façon dont je peux obtenir des éléments DOM sur Discourse sans avoir à utiliser un setTimeout et un querySelector.
Car actuellement, je fais quelque chose comme ceci : -
setTimeout(() => {
var createTopicButton = document.querySelector("#create-topic");
if(createTopicButton)
createTopicButton.onclick = function (e) {
if (window.Moengage && window.Moengage.track_event) {
window.Moengage.track_event("Topic_Create_Clicked", {});
}
setTimeout(() => {
var topicCreate = document.querySelector("#reply-control .save-or-cancel .btn-primary")
topicCreate.onclick = function (e) {
let heading = document.querySelector('#reply-control #reply-title').value;
let category = document.querySelector('.select-kit-header-wrapper >.select-kit-selected-name >.name >.badge-wrapper >.badge-category >.category-name')?.innerText;
let desc = document.querySelector('.d-editor-textarea-column >.d-editor-textarea-wrapper textarea').value;
let imagePresent = desc.includes("upload://");
if (window.Moengage && window.Moengage.track_event && heading && category && desc) {
window.Moengage.track_event("Topic_Created", {"Category":category,"Topic Name":heading,"Topic Description":desc,"Is_image_present":imagePresent});
}
}
},[300])
};
},[500])
Si je n’utilise pas les timeouts ci-dessus, j’obtiens parfois des éléments nuls car le DOM n’est pas entièrement chargé, même après avoir placé cela dans une fonction window.onload.
Mon objectif est donc d’obtenir des éléments DOM et de modifier la fonctionnalité onChange.
Toute aide serait la bienvenue.
Merci ![]()