Guest User

last update

a guest
Mar 24th, 2026
17
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // ==UserScript==
  2. // @name        curseur après sticker
  3. // @match       https://www.jeuxvideo.com/forums/*.htm
  4. // @grant       none
  5. // @noframes
  6. // ==/UserScript==
  7.  
  8.  
  9. "use strict";
  10.  
  11. (() => {
  12. let positionducurseur = 0;
  13. let longueurdutextpourfalse;
  14. let longueurdutextpourtrue = 0;
  15. let positiondelabarredescroll;
  16. let boutondemiseenforme = ".buttonsEditor button:is([title='Gras'],[title='Italique'],[title='Souligné'],[title='Barré'],[title='Liste'],[title='Listes numérotées'], [title='Citation'],[title='Code'],[title='Spoiler'])";
  17. let lapositionaprescalcul;
  18.  
  19. document.addEventListener("input", nomdelafonction, true);
  20. document.addEventListener("click", nomdelafonction, true);
  21. document.addEventListener("keyup", nomdelafonction, true);
  22.  
  23. function nomdelafonction (quelquechose){
  24. let textarea = document.querySelector("#message_topic.js-textarea-message-editor.messageEditor__edit");
  25. if(!textarea){return;}
  26. if(quelquechose.target === textarea){
  27.  
  28. if(quelquechose.isTrusted === false){
  29. longueurdutextpourfalse = textarea.textLength;
  30. lapositionaprescalcul = positionducurseur + longueurdutextpourfalse - longueurdutextpourtrue;
  31. textarea.setSelectionRange(lapositionaprescalcul, lapositionaprescalcul);
  32. textarea.focus();
  33.  
  34.  
  35. } else {
  36. longueurdutextpourtrue = textarea.textLength;
  37. positionducurseur = textarea.selectionStart;
  38. }
  39.  
  40. } else if (quelquechose.target.matches("img.smileys__img")){
  41.  
  42.  
  43. positionducurseur = textarea.selectionStart;
  44. longueurdutextpourtrue = textarea.textLength;
  45.  
  46. let textdusmiley = quelquechose.target.closest(".smileys__cell").nextElementSibling?.textContent || "";
  47. lapositionaprescalcul = positionducurseur + textdusmiley.length + 2;
  48. if(!quelquechose.target.closest(boutondemiseenforme)){positiondelabarredescroll = textarea.scrollTop;}
  49.  
  50. requestAnimationFrame(() => {
  51. textarea.setSelectionRange(lapositionaprescalcul, lapositionaprescalcul);
  52. textarea.scrollTop = positiondelabarredescroll;
  53. })
  54.  
  55.  
  56. } else if (quelquechose.target.matches(".video__buttonVideoModal")){
  57.  
  58. positionducurseur = textarea.selectionStart;
  59. longueurdutextpourtrue = textarea.textLength;
  60.  
  61. if(!quelquechose.target.closest(boutondemiseenforme)){positiondelabarredescroll = textarea.scrollTop;}
  62.  
  63. requestAnimationFrame(() => {
  64. lapositionaprescalcul = textarea.value.indexOf("]]", positionducurseur) + 3;
  65. textarea.setSelectionRange(lapositionaprescalcul, lapositionaprescalcul);
  66. textarea.scrollTop = positiondelabarredescroll;
  67. })
  68.  
  69.  
  70. } else if (quelquechose.target.matches("button.simpleButton.imageUploadEditor__btnImg")){
  71.  
  72. positionducurseur = textarea.selectionStart;
  73. longueurdutextpourtrue = textarea.textLength;
  74.  
  75. let longueurdetouslesimages = Array.from(document.querySelectorAll(".imageUploadEditor__img"), (el)=>el.src.replace("https://image.noelshack.com/minis/","https://www.noelshack.com/")).join(" ").length;
  76. lapositionaprescalcul = positionducurseur + longueurdetouslesimages + 1;
  77. if(!quelquechose.target.closest(boutondemiseenforme)){positiondelabarredescroll = textarea.scrollTop;}
  78.  
  79. requestAnimationFrame(() => {
  80. textarea.setSelectionRange(lapositionaprescalcul, lapositionaprescalcul);
  81. textarea.scrollTop = positiondelabarredescroll;
  82. })
  83.  
  84. }
  85.  
  86. if(navigator.userAgent.indexOf("Chrome") != -1){
  87. if(!quelquechose.target.closest(boutondemiseenforme)){positiondelabarredescroll = textarea.scrollTop;}
  88. if(quelquechose.target.closest(boutondemiseenforme)){
  89. requestAnimationFrame(() => {
  90. textarea.scrollTop = positiondelabarredescroll;
  91. })
  92. }
  93. }
  94.  
  95. }
  96.  
  97. })();
  98.  
Advertisement
Add Comment
Please, Sign In to add comment