Làm cách nào để dừng chrome / firefox tải xuống gif?


8

Khi tôi truy cập bất kỳ trang nào có chứa một số hoạt hình gif(Google+, 9gag, v.v.), tất cả những trang đó dường như bắt đầu tải. Băng thông của tôi bị giới hạn và tôi không muốn tải xuống trừ khi tôi thực sự muốn xem. Tôi đã thấy một số plugin chỉ dừng hoạt hình nhưng hình ảnh vẫn được tải xuống . 9gag.com ban đầu có tính năng này chỉ hiển thị hình ảnh tĩnh (nếu đó là ảnh động) và chỉ bắt đầu tải xuống sau khi tôi nhấp vào nó (họ đã gỡ bỏ nó ngay bây giờ).

Vì vậy, có plugin nào có thể ngừng tải gif không? Hoặc, tôi có cần viết một phần mở rộng không? Bất cứ đề nghị nào?


Tôi giả sử bạn không muốn chặn tất cả các hình ảnh phải không? Vấn đề với điều này là nó đủ đơn giản để chặn tất cả .gifcác tệp, nhưng nếu bạn chỉ muốn chặn các tệp hoạt hình .gif , thì tiện ích mở rộng vẫn phải tải xuống bất kỳ .giftệp nào được nhúng trong trang để xác định xem chúng có hoạt hình hay không. Đặt cược tốt nhất của bạn là chặn tất cả các GIF. (Tôi chỉ nghĩ ra một ý tưởng có thể hoạt động tốt, nhưng tôi không nghĩ rằng nó đã được thực hiện. Nếu tôi có thời gian, tôi sẽ cố gắng làm một cái gì đó trong trường hợp không ai biết về một giải pháp hiện có.)
Synetech

Chặn tất cả gif sẽ làm. Tất cả các hình ảnh khác nên được nhìn thấy. Tôi googled, nhưng có vẻ như mọi người đều quan tâm đến sự xao lãng của hoạt hình. Vì vậy, hầu hết các plugin chỉ dừng hoạt hình. Tôi có thể viết một phần mở rộng chrome; nhưng tôi chỉ tự hỏi nếu có giải pháp khác tồn tại.
mshsayem

1
Vì GIF hoạt hình thường là vài megabyte, tôi đồng ý rằng chúng có thể gây phiền toái, đặc biệt là khi có nhiều trang trong một trang (thực tế bạn có thể tạo DoS với một trang được tải bằng GIF hoạt hình khổng lồ). Một số tiện ích mở rộng chặn hình ảnh mà tôi có thể tìm thấy có xu hướng là loại khối tất cả hình ảnh. Tuy nhiên , có Trình chặn an toàn có chức năng chặn GIF tùy chọn. Tôi không thể kiểm tra nó vào lúc này, nhưng nó có vẻ đầy hứa hẹn.
Synetech

Chỉ cần thử Safe Blocker . Nó chỉ cung cấp cho bạn một trang web proxy mà chắc chắn không phải là những gì tôi muốn.
mshsayem

A, xấu hổ quá. Họ đã không đề cập đến điều đó , nhưng nó sẽ giải thích đánh giá rằng nó chậm . Thật kỳ lạ khi điều này chưa được giải quyết. Có lẽ đó là do các trang chứa đầy GIF hoạt hình vẫn còn khá mới, nên nó chưa được xử lý. Hãy thử điều này UserScript . Nó không hoạt động trong phiên bản cũ của Chromium, nhưng nó có thể hoạt động trong các phiên bản Chrome mới hơn.
Synetech

Câu trả lời:


1

Tôi chưa có tiện ích mở rộng / plugin phù hợp nào. Tôi đã thử sử dụng tập lệnh người dùng sau với TamperMonkey trong Chrome. Nó đang làm việc rất tốt. Chặn tất cả các gifs (bao gồm cả ajax gifs) trong trang web 9gag.com. Vì một số lý do, ajax gifs trong google + không bị chặn (điều tra điều đó). Rất cám ơn Synetec vì sự giúp đỡ, nỗ lực và mã của anh ấy. Đây là tập lệnh người dùng (hầu hết các tập lệnh được sao chép từ tập lệnh người dùng của 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);

Hiện nay:

  1. Cài đặt TamperMonkey
  2. Đi đến bảng điều khiển
  3. Nhấp vào 'tập lệnh mới'
  4. Dán đoạn mã trên
  5. Lưu và xem nếu nó hoạt động. (chỉ hoạt động trên 9gag.com bây giờ. Nhưng bạn có thể thay đổi các @matchchỉ thị để phù hợp với bất kỳ trang web nào bạn muốn. sử dụng @match http://*/*để làm việc cho tất cả các trang web (http). Thay đổi để httpscho bất kỳ trang web http bảo đảm, ví dụ như google +)

Thật tệ là khá nhiều người dùng đã bắt đầu tải lên GIF với phần mở rộng .jpg. Vì vậy, được gọi là JPEG hoạt hình . Có lẽ thành ngữ này đã nêu vì một số trang web sẽ không cho phép tải lên GIF mà chỉ kiểm tra phần mở rộng để xác định loại tệp. Cùng một cách bạn làm điều đó. Tôi đoán là if ($.trim(ext.toLowerCase()) != "gif")sẽ chỉ bắt được một nửa số GIF.
Martin

0

Một số addon firefox đẹp:

adblock - chặn quảng cáo thông minh

flashblock - tất cả flash sẽ bị chặn cho đến khi bạn không nhấp vào chúng

imgblock - chặn TẤT CẢ hình ảnh, ở mọi nơi (có thể bị tắt tạm thời)

ghostery - chặn các trang mạng xã hội (họ có thể kiếm thêm hàng trăm kbyte mỗi lần truy cập trang!)


Tôi biết về những điều này. Nhưng những người không làm những gì tôi muốn. tức là dừng tải xuống (không chỉ làm cho nó vô hình) chỉ là hình ảnh gif.
mshsayem
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.