En ce mois d'aout peut propice au trading et fort propice aux "taches de fond", j'ai décidé de retrousser mes manches pour rajouter un raccourci sur l'interface web d'ig.
Quand je positionne une alerte sur cours, après avoir entrée le niveau por "valider" l'alerte j'ai deux choix :
1) Soit prendre ma souris, déplacer le curseur sur le bouton "Définir Alerte" et cliquer
---->>> soit 3 actions
2) Soit cliquer deux fois sur la touche "Tab" puis une fois sur la touche "entrée"
--->>> idem que prédédement : 3 actions avec un petit avantage : pas besoin d'aller chercher le mulot, on reste avec le clavier.
Donc en tant que grand adepte es scripte Greasemonkey/tampermonkey j'ai décidé de me créer un raccourci clavier :
Une fois le niveau de cours saisi et/ou un test écrit dans la zone "message", il me suffit de presser le combo de touches CTRL+ENTER et hop : ça click sur le bouton "définir une alerte".
--->>> Soit une seule actions et au clavier !
Je vous livre ci-dessous le code.
En toute transparence je l'ai fini y'a 5 minutes et je ne l'ai testé que sous tampermonkey/Chromev84.
Je vais certainement le tester sous tampermonkey/FF68.
Donc n'hésitez pas à me remonter tout pb de bug.
NB : Si y'a des spécialiste de code JS pour faire "mieux", càd plus optimale je suis preneur, car le fait de "seter" un addeventlistener à chaque appui de touche me "trouble" mais comme les eventlistener n'ont jamais été géré de manière centralisé dans les browser, je ne sais pas comment récuperer si un event est attaché à un objet ...
[code]// ==UserScript==
// @name IGAlerts : Ctrl+Enter
// @namespace http://deal.ig.com/wtp/
// @version 1.0
// @description Activate the "Enter Key when input value in Alerts
// @author falex
// @match https://deal.ig.com/wtp/
// @grant none
// ==/UserScript==
//Functions
function igsidebaraddEvent() {
console.log("Script Delay End -> igsidebaraddEvent");
document.getElementsByClassName("ig-sidebar_container")[0].addEventListener('keypress', igsidebarkeypress);
}
function igsidebarkeypress(event) {
//console.log("igsidebarkeypress");
if (document.getElementsByClassName("submit-button_wrapper").length > 0) {
//console.log(" submit-button-wrapper");
document.querySelector("form").getElementsByTagName("input")[0].addEventListener('keypress', submitbtnkeypress); //Input box
document.querySelector("form").getElementsByTagName("textarea")[0].addEventListener('keypress', submitbtnkeypress); //Textarea box
console.log(" addEventListener submit-btn");
}
}
function submitbtnkeypress(zEvent) {
if (zEvent.ctrlKey && zEvent.code === "Enter") {
document.getElementsByClassName("submit-button_wrapper")[0].click();
console.log("! submit-btn -> click()");
}
}
//Main
console.log("Script start");
setTimeout(igsidebaraddEvent, 2000); // Delay to start the script to wait the document loaded[/code]