Wie kann ich verhindern, dass Chrome/Firefox ein GIF herunterlädt?

Wie kann ich verhindern, dass Chrome/Firefox ein GIF herunterlädt?

Wenn ich eine Seite besuche, die animierte gifs enthält (Google+, 9gag usw.), scheinen alle zu laden. Meine Bandbreite ist begrenzt und ich möchte nicht, dass diese heruntergeladen werden, es sei denn, ich möchte sie wirklich ansehen. Ich habe einige Plugins gesehen, die einfach aufhörenAnimationaber das Bild selbst istheruntergeladenwie auch immer. 9gag.com hatte anfangs diese Funktion, die nur ein statisches Bild anzeigte (wenn es ein animiertes GIF war) und den Download erst startete, nachdem ich darauf geklickt hatte (sie haben es jetzt entfernt).

Gibt es also ein Plugin, das stoppen kannwird heruntergeladengif? Oder muss ich eine Erweiterung schreiben? Irgendwelche Vorschläge?

Antwort1

Ich habe noch keine passende Erweiterung/Plugin. Ich habe versucht, das folgende Benutzerskript mitTamperMonkeyin Chrome. Es funktioniert super. Blockiert alle Gifs (einschließlich Ajax-Gifs) auf der Site 9gag.com. Aus irgendeinem Grund werden Ajax-Gifs in Google+ nicht blockiert (wir untersuchen das). Vielen Dank anSynetecfür seine Hilfe, Mühe und seinen Code. Hier ist das Benutzerskript (die meisten Skripte sind kopiert vonSynetecs Benutzerskript):

// ==UserScript==
// @name       gifBlock
// @namespace  http://i.have.no.homepage/
// @version    0.1
// @description  Stops downloading gif images (including ajax gifs) in 9gag.com (or any page if you just fix the @match rule)
// @match      http://*.9gag.com
// @copyright  2012+, Nobody
// ==/UserScript==

function tamperMonkeyWrap()
{   
    function log(m)
    {
        console.log(m);
    }
    function jQWrap($)
    {
        log("Extension execution begins...");

        function blockGifs()
        {        
            $('img').each(function() {
                var $img = $(this),
                    src = $img.attr('src'),
                    w = $img.width(),
                    h = $img.height(),
                    cursor = $img.css('cursor'),
                    parts = src.split('.'),
                    ext = parts[parts.length-1];

                if ($.trim(ext.toLowerCase()) != "gif")
                    return;            

                $img.attr('data-imgurl', src);
                $img.data('cursor', cursor);
                $img.css('cursor', 'pointer');
                $img.addClass('gif-blocked');                
                h = h > 100? h : 100;
                $img.attr('src', '//ipsumimage.appspot.com/'+w+'x'+h+'?l=Gif (Click)');
            }); 
        }

        function interceptAjax () {
            $('body').ajaxComplete(
                function (event, requestData)
                {
                    log("Blocking GIF [Ajax] ...");                
                    blockGifs();
                }
            );
        }

        $(document).ready(function() {
            log("Blocking GIF [Ready]....");
            blockGifs();
            interceptAjax();        
            $(document).on('click', 'img.gif-blocked', function(ev) {            
                var $img = $(this),
                    url = $img.attr('data-imgurl'),
                    cursor = $img.data('cursor');

                $img.attr('src', url);
                $img.css('cursor', cursor);
                $img.removeClass('gif-blocked');
                ev.preventDefault();
                return false;
            });  
        });

        log("Document is not ready yet. trying block just in case it takes time to be _ready_ (google+).");
        blockGifs();
    }

    if (window.jQuery == undefined)
    {
        log("Loading jQuery...");
        var scriptTag = document.createElement('script');
        scriptTag.src = "//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js";
        scriptTag.onload = function(){
            log("jQuery loaded.");
            window.jQuery = jQuery; 
            jQWrap(jQuery);
        };
        document.getElementsByTagName('head')[0].appendChild(scriptTag);
    }
    else
    {
        log("jQuery already included in the page");
        jQWrap(window.jQuery);
    }   
}

var scriptTag = document.createElement('script');
scriptTag.text = '(' + tamperMonkeyWrap.toString() + ')();';
document.getElementsByTagName('head')[0].appendChild(scriptTag);

Jetzt:

  1. Installieren Sie TamperMonkey
  2. Zum Dashboard
  3. Klicken Sie auf „Neues Skript“.
  4. Fügen Sie den obigen Code ein
  5. Speichern Sie und sehen Sie, ob es funktioniert. (funktioniert derzeit nur auf 9gag.com. Sie können die @matchAnweisung jedoch ändern, damit sie mit jeder gewünschten Site übereinstimmt. Verwenden Sie , @match http://*/*damit es für alle Sites (http) funktioniert. Ändern Sie es httpsfür jede gesicherte HTTP-Site, z. B. Google+.)

Antwort2

Einige nette Firefox-Add-ons:

Adblock - intelligentes Blockieren von Werbung

Flashblock - alle Flash-Dateien werden blockiert, bis Sie darauf klicken

imgblock – blockiert ALLE Bilder, überall (kann mit einem Klick vorübergehend deaktiviert werden)

Ghostery – blockiert die Websites sozialer Netzwerke (sie können pro Seitenbesuch über hundert KBytes erzeugen!)

verwandte Informationen