
Cuando visito cualquier página que contenga algunos gif
mensajes 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:
- Instalar TamperMonkey
- Ir al panel de control
- Haga clic en 'nuevo script'
- Pega el código anterior
- Guarde y vea si funciona. (Ahora solo funciona en 9gag.com. Pero puede cambiar la
@match
directiva para que coincida con cualquier sitio que desee. Úsela@match http://*/*
para que funcione para todos los sitios (http). Cambie ahttps
cualquier 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!)