Facebook Image Alt Text Display

Display automated alt text over images.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, Greasemonkey alebo Violentmonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, % alebo Violentmonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey, % alebo Violentmonkey.

Na nainštalovanie skriptu si budete musieť nainštalovať rozšírenie, ako napríklad Tampermonkey alebo Userscripts.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie, ako napríklad Tampermonkey.

Na inštaláciu tohto skriptu je potrebné nainštalovať rozšírenie správcu používateľských skriptov.

(Už mám správcu používateľských skriptov, nechajte ma ho nainštalovať!)

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie, ako napríklad Stylus.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

Na inštaláciu tohto štýlu je potrebné nainštalovať rozšírenie správcu používateľských štýlov.

(Už mám správcu používateľských štýlov, nechajte ma ho nainštalovať!)

// ==UserScript==
// @name         Facebook Image Alt Text Display
// @namespace    http://
// @version      0.1
// @description  Display automated alt text over images.
// @author       Marko Zabreznik
// @require      http://code.jquery.com/jquery-1.11.0.min.js
// @match        https://www.facebook.com/
// @grant        none
// @run-at       document-start
// ==/UserScript==

function debounce (func, threshold) {
    var timeout;
    var obj = this;
    function delayed () {
        func.apply(obj);
        timeout = null;
    }
    return function () {
        if (timeout)
            clearTimeout(timeout);
        timeout = setTimeout(delayed, threshold);
    };
}

function showAlt() {
    $("#contentArea img[alt]:not(.fimah).img").each(function(){
        var img = $(this);
        img.addClass('fimah');
        if (img.hasClass('UFIActorImage') || !img.attr('alt') || img.attr('alt') == "No automatic alt text available.") {
            return;
        }
        $('<div style="position:absolute;bottom: 0; padding: 4px; left: 0;background:rgba(255,255,255,0.5); color: black;"></div>')
            .text(img.attr('alt')).insertAfter(this);
    });
}

new MutationObserver(debounce(showAlt, 200)).observe(document, {subtree: true, childList: true});