
Wenn ich eine Seite besuche, die animierte gif
s 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:
- Installieren Sie TamperMonkey
- Zum Dashboard
- Klicken Sie auf „Neues Skript“.
- Fügen Sie den obigen Code ein
- Speichern Sie und sehen Sie, ob es funktioniert. (funktioniert derzeit nur auf 9gag.com. Sie können die
@match
Anweisung jedoch ändern, damit sie mit jeder gewünschten Site übereinstimmt. Verwenden Sie ,@match http://*/*
damit es für alle Sites (http) funktioniert. Ändern Sie eshttps
fü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!)