Evolution #346
ouvertAutoreload
0%
Description
Simuler un clic sur le bouton rechercher toutes les x secondes/minutes (paramétrable dans la conf de l'extension).
Mis à jour par César Lizurey il y a plus de 8 ans
OK ça c'est assez simple:
function rafraichirBDSP(){
document.getElementById('[ID DU BOUTON]').click();
}
window.setInterval(function(){
rafraichirBDSP();
}, 60000);
(ça c'est pour 60 secondes).
Mis à jour par César Lizurey il y a plus de 8 ans
Il faut attendre que le DOM soit chargé avant de déclenché la fonction:
document.addEventListener("DOMContentLoaded", function(event) {
// faire ce qu'il faut
});
Mis à jour par Thomas Souvignet il y a plus de 8 ans
- Statut changé de Nouveau à En cours
- Assigné à mis à César Lizurey
J'ai mis une sauvegarde FF de la page BDSP dans la section Fichiers de Redmine.
Si c'est complet, tu peux essayer de me proposer un bout de code à tester ?
Mis à jour par Thomas Souvignet il y a plus de 8 ans
Sur la base de :
https://stackoverflow.com/questions/809057/how-do-i-programmatically-click-on-an-element-in-javascript
J'ai tapé ça dans la console :
var element = document.getElementById("ext-gen268");
undefined
var clickEvent = new MouseEvent("click", {
"view": window,
"bubbles": true,
"cancelable": false
});
undefined
element.dispatchEvent(clickEvent);
TypeError: element is null
Bon à priori mon problème c'est surtout d'identifier :
document.getElementById("ext-gen268");
Mis à jour par Thomas Souvignet il y a plus de 8 ans
Je pense qu'on doit pouvoir faire un truc en modifiant le JS chargé en début de frame.
Genre, faudrait test de changer le bouton "Rechercher" avec ça :
document.getElementsByName('_48_INSTANCE_L4EN_iframe').contentWindow.document.getElementById('ext-gen268').name = "Yes"
Mis à jour par Thomas Souvignet il y a plus de 8 ans
J'allais valider ce qui suivi mais je pense que le problème vient de ça :
<script type="text/javascript">
//Thomas
document.addEventListener("DOMContentLoaded", function(event) {
document.getElementsByName('_48_INSTANCE_L4EN_iframe')*[0]*.contentWindow.document.getElementById('ext-gen268').name = "Yes";
});
</script>
// Post initial
Bon j'ai ajouté ça en fin des javascripts de BDSP.html :
<script type="text/javascript">
//Thomas
document.addEventListener("DOMContentLoaded", function(event) {
document.getElementsByName('_48_INSTANCE_L4EN_iframe').contentWindow.document.getElementById('ext-gen268').name = "Yes";
});
</script>
Bon l'erreur précédente semble se reproduire même en la prévoyant dans le code initial :
TypeError: document.getElementsByName(...).contentWindow is undefined
bdsp.html:269:31
Mis à jour par Thomas Souvignet il y a plus de 8 ans
OK, code à tester demain au taf :
var clickEvent = new MouseEvent("click", {
"view": window,
"bubbles": true,
"cancelable": false
});
var element = document.getElementsByName('_48_INSTANCE_L4EN_iframe')[0].contentWindow.document.getElementById('ext-gen268');
element.dispatchEvent(clickEvent);
Mis à jour par Thomas Souvignet il y a plus de 8 ans
Error: Permission denied to access property "document"
Je ne peux pas accéder (depuis la console) au document de la frame.
--> Solution, modifier le JS de a.html (le fichier html de la frame) pour y ajouter l'autoreload.