¿Cómo evitar que Chrome/Firefox descargue un gif?

¿Cómo evitar que Chrome/Firefox descargue un gif?

Cuando visito cualquier página que contenga algunos gifmensajes de texto animados (Google+, 9gag, etc.), todos parecen empezar a cargarse. Mi ancho de banda es limitado y no quiero que se descarguen a menos que realmente quiera verlos. He visto algunos complementos que simplemente se detienen.animaciónpero la imagen en sí esdescargadode todos modos. Inicialmente, 9gag.com tenía esta función que solo mostraba una imagen estática (si es un gif animado) y comenzó a descargarse solo después de que hice clic en ella (ahora la han eliminado).

Entonces, ¿hay algún complemento que pueda detenerdescargandogif? ¿O necesito escribir una extensión? ¿Cualquier sugerencia?

Respuesta1

Todavía no tengo ninguna extensión/complemento adecuado. Intenté usar el siguiente script de usuario conMono manipuladoren Chrome. Está funcionando muy bien. Bloqueo de todos los gifs (incluidos los gifs ajax) en el sitio 9gag.com. Por alguna razón, los gifs ajax en google+ no se bloquean (investigando eso). Muchas gracias aSinetecpor su ayuda, esfuerzo y código. Aquí está el script de usuario (la mayoría de los scripts se copian deGuión de usuario de Synetec):

// ==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);

Ahora:

  1. Instalar TamperMonkey
  2. Ir al panel de control
  3. Haga clic en 'nuevo script'
  4. Pega el código anterior
  5. Guarde y vea si funciona. (Ahora solo funciona en 9gag.com. Pero puede cambiar la @matchdirectiva para que coincida con cualquier sitio que desee. Úsela @match http://*/*para que funcione para todos los sitios (http). Cambie a httpscualquier sitio http seguro, por ejemplo, google+)

Respuesta2

Algunos buenos complementos de Firefox:

adblock - bloqueo inteligente de anuncios

flashblock: todos los flashes se bloquearán hasta que no hagas clic en ellos.

imgblock: bloquea TODAS las imágenes, en todas partes (se puede desactivar temporalmente con un clic)

Ghostery: bloquea los sitios de redes sociales (¡pueden ganar más de cien kbytes por visita a la página!)

información relacionada