StopMultipleMessage

Block spam on over-clicking

当前为 2015-09-19 提交的版本,查看 最新版本

  1. // ==UserScript==
  2. // @name StopMultipleMessage
  3. // @namespace Forum
  4. // @author Kmaschta
  5. // @date 19/09/2015
  6. // @version 1.0
  7. // @description Block spam on over-clicking
  8. // @match http://www.dreadcast.net/Main
  9. // @match http://www.dreadcast.net/Forum*
  10. // @match http://www.dreadcast.net/FAQ*
  11. // @require http://code.jquery.com/jquery-latest.min.js
  12. // @grant none
  13. // ==/UserScript==
  14.  
  15. jQuery.noConflict();
  16.  
  17. function unlock_button(elem, onclick, content) {
  18. elem.attr('onclick', onclick);
  19. elem.html(content);
  20. elem.removeClass('locked');
  21. }
  22.  
  23. function lock_button(elem) {
  24. // Save event action
  25. var onclick = elem.attr('onclick');
  26. var content = elem.html();
  27.  
  28. // Lock button
  29. elem.removeAttr('onclick');
  30. elem.unbind('click');
  31. elem.html('Verrouillé');
  32. elem.addClass('locked');
  33.  
  34. // Still unlock after 5s
  35. var tid = setTimeout(function() {
  36. if(elem.hasClass('locked')) {
  37. unlock_button(elem, onclick, content);
  38. elem.unbind('dblclick');
  39. }
  40. }, 5000);
  41.  
  42. // Unlock button on dbl click
  43. elem.dblclick(function() {
  44. clearTimeout(tid);
  45. unlock_button(elem, onclick, content);
  46. // Rebind lock on click
  47. elem.click(function() { lock_button(elem); });
  48. });
  49. }
  50.  
  51. $(document).ready( function() {
  52. // Forum "Poster" button
  53. $('#zone_reponse .bouton.poster').not('.locked').click(function() {
  54. lock_button($(this));
  55. });
  56.  
  57. // IG "Envoyer" response message
  58. $(document).ajaxComplete(function() {
  59. $('.zone_reponse .btnTxt').not('.locked').unbind('click').click(function() {
  60. lock_button($(this));
  61. });
  62. });
  63.  
  64. console.log('StopMultipleMessage on');
  65. });