Reddit Confirm Save/Submit ⚠️

Display a confirmation popup before submitting or editing content

  1. // ==UserScript==
  2. // @name Reddit Confirm Save/Submit ⚠️
  3. // @namespace http://tampermonkey.net/
  4. // @version 1.2
  5. // @description Display a confirmation popup before submitting or editing content
  6. // @author Agreasyforkuser
  7. // @icon https://www.redditstatic.com/desktop2x/img/favicon/android-icon-192x192.png
  8. // @match https://*.reddit.com/*
  9. // @grant none
  10. // ==/UserScript==
  11. (function() {
  12. 'use strict';
  13.  
  14. function getUsername() {
  15. const userSpan = document.querySelector('span.user a');
  16. if (userSpan) {
  17. const username = userSpan.textContent;
  18. const maskedUsername = username
  19. .split('')
  20. .map((char, index) => (index % 3 === 2 ? '*' : char))
  21. .join('');
  22. return maskedUsername;
  23. }
  24. return 'Unknown User';
  25. }
  26.  
  27. function confirmButtonClick(event) {
  28. const target = event.target;
  29. const buttonText = target.textContent.trim().toLowerCase();
  30.  
  31. // exclude save-post and save-comment buttons
  32. if (target.closest('.link-save-button, .link-unsave-button, .entry')) {
  33. return;
  34. }
  35.  
  36.  
  37. if (['save', 'submit'].includes(buttonText)) {
  38. const username = getUsername();
  39. if (!confirm(`⚠️${username}⚠️`)) {
  40. event.preventDefault();
  41. event.stopPropagation();
  42. }
  43. }
  44. }
  45.  
  46. document.body.addEventListener('click', confirmButtonClick);
  47. })();