Bagaimana cara menghentikan chrome / firefox mengunduh gif?

8

Ketika saya mengunjungi halaman mana pun yang berisi beberapa animasi gif(Google+, 9gag dll), semua itu tampaknya mulai memuat. Bandwidth saya terbatas dan saya tidak ingin itu diunduh kecuali saya benar-benar ingin melihatnya. Saya telah melihat beberapa plugin yang hanya menghentikan animasi tetapi gambar itu sendiri sudah diunduh . 9gag.com awalnya memiliki fitur ini yang hanya menunjukkan gambar statis (jika itu adalah gif animasi) dan mulai mengunduh hanya setelah saya mengkliknya (mereka telah menghapusnya sekarang).

Jadi, apakah ada plugin yang bisa berhenti mengunduh gif? Atau, apakah saya perlu menulis ekstensi? Ada saran?

mshsayem
sumber
Saya berasumsi Anda tidak ingin memblokir semua gambar, kan? Masalahnya adalah cukup sederhana untuk memblokir semua .giffile, tetapi jika Anda hanya ingin memblokir file animasi .gif , maka ekstensi tersebut masih harus mengunduh .giffile yang tertanam di halaman untuk menentukan apakah file tersebut dianimasikan atau tidak. Taruhan terbaik Anda adalah memblokir semua GIF. (Saya hanya memikirkan sebuah ide yang mungkin bekerja dengan baik, tetapi saya tidak berpikir itu telah dilakukan. Jika saya punya waktu, saya akan mencoba untuk menyiapkan sesuatu kalau-kalau tidak ada yang tahu solusi yang ada.)
Synetech
Memblokir semua gif bisa dilakukan. Semua gambar lain harus terlihat. Saya mencari di Google, tetapi tampaknya semua orang khawatir tentang gangguan animasi. Jadi, sebagian besar plugin hanya menghentikan animasi. Saya bisa menulis ekstensi chrome; tapi saya hanya ingin tahu apakah ada solusi lain.
mshsayem
1
Karena GIF animasi sering beberapa megabita, saya setuju bahwa itu bisa sangat mengganggu, terutama ketika ada beberapa halaman (Anda bisa membuat DoS dengan halaman yang memuat GIF animasi raksasa). Beberapa ekstensi pemblokiran gambar yang saya temukan cenderung jenis blok-semua-gambar. Namun ada Pemblokir Aman yang memiliki fungsi pemblokiran GIF opsional. Saya tidak bisa mengujinya saat ini, tetapi terlihat menjanjikan.
Synetech
Baru saja mencoba Safe Blocker . Itu hanya memberi Anda situs proxy yang jelas bukan yang saya inginkan.
mshsayem
Ah, malu. Mereka tidak menyebutkan itu , tetapi itu akan menjelaskan ulasan mengatakan itu lambat . Sungguh aneh bahwa ini belum diselesaikan. Mungkin itu karena halaman yang penuh dengan GIF animasi masih cukup baru, sehingga belum ditangani. Coba skrip pengguna ini . Itu tidak berfungsi di versi Chromium yang lama, tetapi mungkin berfungsi di versi Chrome yang lebih baru.
Synetech

Jawaban:

1

Saya belum mendapatkan ekstensi / plugin yang sesuai. Saya telah mencoba menggunakan skrip pengguna berikut dengan TamperMonkey di Chrome. Ini bekerja dengan baik. Memblokir semua gif (termasuk ajax gif) di situs 9gag.com. Untuk beberapa alasan, ajax gif di google + jangan diblokir (selidiki itu). Terima kasih banyak kepada Synetec atas bantuan, upaya, dan kode-nya. Berikut adalah skrip pengguna (sebagian besar skrip disalin dari skrip pengguna 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);

Sekarang:

  1. Instal TamperMonkey
  2. Buka dasbor
  3. Klik pada 'skrip baru'
  4. Tempel kode di atas
  5. Simpan dan lihat apakah itu berfungsi. (hanya berfungsi di 9gag.com sekarang. Tetapi Anda dapat mengubah @matcharahan agar sesuai dengan situs yang Anda inginkan. gunakan @match http://*/*untuk berfungsi untuk semua situs (http). Ubah ke httpsuntuk situs http aman, misalnya google +)
mshsayem
sumber
Buruknya beberapa pengguna mulai mengunggah GIF dengan ekstensi .jpg. Disebut JPEG animasi . Agaknya kebodohan ini dinyatakan karena beberapa situs tidak akan mengizinkan mengunggah GIF tetapi hanya memeriksa ekstensi untuk menentukan jenis file. Sama seperti Anda melakukannya. Dugaan saya adalah bahwa if ($.trim(ext.toLowerCase()) != "gif")hanya akan menangkap setengah dari GIF.
Martin
0

Beberapa addon firefox yang bagus:

adblock - pemblokiran iklan yang cerdas

flashblock - semua flash akan diblokir sampai Anda tidak mengkliknya

imgblock - memblokir SEMUA gambar, di mana saja (dapat dengan klik dinonaktifkan sementara)

ghostery - memblokir situs jejaring sosial (mereka dapat menghasilkan lebih dari seratus kbyte per kunjungan halaman!)

peterh - Pasang kembali Monica
sumber
Saya tahu tentang ini. Tetapi mereka tidak melakukan apa yang saya inginkan. yaitu berhenti mengunduh (tidak hanya membuatnya tidak terlihat) hanya gambar gif.
mshsayem