StopMultipleMessageForumOnly

Block spam on over-clicking

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램을 설치해야 합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name    StopMultipleMessageForumOnly
// @namespace Forum
// @author    Kmaschta, MockingJay
// @date    19/09/2015
// @version   1.2.1
// @description Block spam on over-clicking
// @match   https://www.dreadcast.net/Forum*
// @match   https://www.dreadcast.net/FAQ*
// @require   http://code.jquery.com/jquery-latest.min.js
// @grant   none
// ==/UserScript==

// CHANGELOG
// 1.1: Set cursor to 'wait' when locked

jQuery.noConflict();

function unlock_button(elem, onclick, content) {
    elem.attr('onclick', onclick);
    elem.removeAttr('style');
    elem.html(content);
    elem.removeClass('locked');
}

function lock_button(elem) {
    // Save event action
    var onclick = elem.attr('onclick');
    var content = elem.html();

    // Lock button
    elem.removeAttr('onclick');
    elem.unbind('click');
    elem.html('Verrouillé');
    elem.attr('style', 'cursor: wait;');
    elem.addClass('locked');

    // Still unlock after 5s
    var tid = setTimeout(function() {
        if(elem.hasClass('locked')) {
            unlock_button(elem, onclick, content);
            elem.unbind('dblclick');
        }
    }, 5000);

    // Unlock button on dbl click
    elem.dblclick(function() {
        clearTimeout(tid);
        unlock_button(elem, onclick, content);
        // Rebind lock on click
        elem.click(function() { lock_button(elem); });
    });
}

$(document).ready( function() {
    // Forum "Poster" button
    $('#zone_reponse .bouton.poster').not('.locked').click(function() {
        lock_button($(this));
    });

    // IG "Envoyer" response message
    /*$(document).ajaxComplete(function() {
        $('.zone_reponse .btnTxt').not('.locked').unbind('click').click(function() {
            lock_button($(this));
        });
    });*/

    console.log('StopMultipleMessage on');
});