Comment arrêter le téléchargement de gif sur Chrome / Firefox?

8

Lorsque je visite une page contenant des animations gif(Google+, 9gag, etc.), toutes celles-ci semblent commencer à se charger. Ma bande passante est limitée et je ne veux pas les télécharger, sauf si je veux vraiment les voir. J'ai vu des plugins qui arrêtent simplement l' animation mais l'image elle-même est téléchargée quand même. 9gag.com avait initialement cette fonctionnalité qui montrait juste une image statique (si c'est un gif animé) et n'a commencé à télécharger qu'après avoir cliqué dessus (ils l'ont supprimée maintenant).

Alors, y a-t-il un plugin qui peut arrêter le téléchargement de gif? Ou dois-je écrire une extension? Toute suggestion?

mshsayem
la source
Je suppose que vous ne voulez pas bloquer toutes les images, n'est-ce pas? Le problème avec cela est qu'il serait assez simple de bloquer tous les .giffichiers, mais si vous souhaitez bloquer uniquement les .gif fichiers animés , l'extension devra toujours télécharger tous les .giffichiers intégrés dans la page pour déterminer s'ils sont animés ou non. Votre meilleur pari est de bloquer tous les GIF. (Je viens de penser à une idée qui pourrait bien fonctionner, mais je ne pense pas qu'elle ait été faite. Si j'ai du temps, j'essaierai de préparer quelque chose au cas où personne ne connaît une solution existante.)
Synetech
Bloquer tout gif fera l'affaire. Toutes les autres images doivent être visibles. J'ai googlé, mais il semble que tout le monde soit préoccupé par la distraction de l'animation. Ainsi, la plupart des plugins arrêtent simplement l'animation. Je pourrais écrire une extension chrome; mais je me demandais simplement si une autre solution existe.
mshsayem du
1
Étant donné que les GIF animés font souvent plusieurs mégaoctets, je conviens qu'ils peuvent être assez gênants, surtout lorsqu'il y en a plusieurs dans une page (vous pouvez pratiquement créer un DoS avec une page chargée de GIF animés géants). Les quelques extensions de blocage d'image que je peux trouver ont tendance à être du type bloc toutes images. Il existe cependant Safe Blocker qui a une fonction de blocage GIF en option. Je ne peux pas le tester pour le moment, mais cela semble prometteur.
Synetech
Je viens d'essayer Safe Blocker . Il vous donne juste un site proxy qui n'est certainement pas ce que je veux.
mshsayem
Ah dommage. Ils ne l'ont pas mentionné , mais cela expliquerait l' examen en disant que c'est lent . C'est étrange que cela n'ait pas déjà été résolu. C'est peut-être parce que les pages pleines de GIF animés sont encore assez nouvelles, donc cela n'a pas encore été résolu. Essayez ce script utilisateur . Cela ne fonctionnait pas dans une ancienne version de Chromium, mais cela peut fonctionner dans les versions plus récentes de Chrome.
Synetech

Réponses:

1

Je n'ai pas encore d'extension / plugin approprié. J'ai essayé d'utiliser le script utilisateur suivant avec TamperMonkey dans Chrome. Cela fonctionne très bien. Blocage de tous les gifs (y compris les gifs ajax) sur le site 9gag.com. Pour une raison quelconque, les gifs ajax dans google + ne sont pas bloqués (enquête sur cela). Un grand merci à Synetec pour son aide, ses efforts et son code. Voici le script utilisateur (la plupart des scripts sont copiés à partir du script utilisateur 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);

Maintenant:

  1. Installer TamperMonkey
  2. Accéder au tableau de bord
  3. Cliquez sur 'nouveau script'
  4. Collez le code ci-dessus
  5. Enregistrez et voyez si cela fonctionne. (ne fonctionne que sur 9gag.com maintenant. Mais vous pouvez modifier la @matchdirective pour qu'elle corresponde à n'importe quel site que vous souhaitez. utiliser @match http://*/*pour fonctionner pour tous les sites (http). Passez à httpspour n'importe quel site http sécurisé, par exemple google +)
mshsayem
la source
Dommage que pas mal d'utilisateurs aient commencé à télécharger des GIF avec l'extension .jpg. Ce que l'on appelle des JPEG animés . Vraisemblablement, cette idiotie a déclaré que certains sites n'autorisaient pas le téléchargement de GIF, mais ne vérifiaient que l'extension pour déterminer le type de fichier. De la même manière que vous le faites. Je suppose que if ($.trim(ext.toLowerCase()) != "gif")cela n'attrapera que la moitié des GIF.
Martin
0

Quelques bons addons pour Firefox:

adblock - blocage intelligent des publicités

flashblock - tout flash sera bloqué jusqu'à ce que vous ne cliquiez pas dessus

imgblock - bloque TOUTES les images, partout (peut être avec un clic temporairement désactivé)

ghostery - bloque les sites de réseaux sociaux (ils peuvent faire plus de cent kilo-octets par visite de page!)

peterh - Réintégrer Monica
la source
Je les connais. Mais ceux-là ne font pas ce que je veux. c'est-à-dire arrêter le téléchargement (pas seulement le rendre invisible) juste des images gif.
mshsayem