จะหยุดการดาวน์โหลด chrome / firefox ได้อย่างไร?


8

เมื่อฉันไปที่หน้าใด ๆ ที่มีภาพเคลื่อนไหวบางส่วนgif(Google+, 9gag เป็นต้น) สิ่งเหล่านั้นดูเหมือนจะเริ่มโหลด แบนด์วิดท์ของฉันมี จำกัด และฉันไม่ต้องการให้ดาวน์โหลดยกเว้นว่าฉันต้องการดูจริงๆ ฉันได้เห็นปลั๊กอินบางอย่างที่เพียงแค่หยุดการเคลื่อนไหวแต่ภาพที่ตัวเองจะถูกดาวน์โหลดแล้วล่ะค่ะ 9gag.com มีคุณสมบัตินี้ในตอนแรกซึ่งเพิ่งแสดงภาพนิ่ง (ถ้าเป็น gif แบบเคลื่อนไหว) และเริ่มดาวน์โหลดหลังจากที่ฉันคลิกเท่านั้น (พวกเขาได้ลบออกแล้ว)

ดังนั้นมีปลั๊กอินใดบ้างที่สามารถหยุดการดาวน์โหลด gif หรือไม่ หรือฉันต้องเขียนส่วนขยายหรือไม่ ข้อเสนอแนะใด ๆ


ฉันคิดว่าคุณไม่ต้องการบล็อกภาพทั้งหมดใช่ไหม ปัญหาเกี่ยวกับเรื่องนี้คือมันจะง่ายพอที่จะบล็อก.gifไฟล์ทั้งหมดแต่ถ้าคุณต้องการบล็อกเฉพาะ .gifไฟล์ภาพเคลื่อนไหวส่วนขยายก็ยังคงต้องดาวน์โหลด.gifไฟล์ใด ๆ ที่ฝังอยู่ในหน้าเพื่อตรวจสอบว่ามันเป็นภาพเคลื่อนไหวหรือไม่ ทางออกที่ดีที่สุดของคุณคือการบล็อก GIF ทั้งหมด (ฉันแค่คิดถึงความคิดที่อาจใช้งานได้ดี แต่ฉันไม่คิดว่ามันจะเกิดขึ้นถ้าฉันมีเวลาฉันจะลองทำอะไรสักอย่างในกรณีที่ไม่มีใครรู้วิธีแก้ปัญหาที่มีอยู่)
Synetech

การปิดกั้น gif ทั้งหมดจะทำ รูปภาพอื่น ๆ ทั้งหมดควรมองเห็นได้ ฉัน googled แต่ดูเหมือนว่าทุกคนกังวลเกี่ยวกับความฟุ้งซ่านของอนิเมชั่น ดังนั้นปลั๊กอินส่วนใหญ่จึงหยุดเคลื่อนไหว ฉันสามารถเขียนส่วนขยายของโครเมี่ยม; แต่ฉันแค่สงสัยว่ามีวิธีการแก้ปัญหาอื่น ๆ อยู่หรือไม่
mshsayem

1
เนื่องจาก GIF แบบเคลื่อนไหวมักจะมีหลายเมกะไบต์ฉันยอมรับว่ามันค่อนข้างน่ารำคาญโดยเฉพาะเมื่อมีหลายหน้า (คุณสามารถสร้าง DoS ด้วยหน้าเว็บที่เต็มไปด้วย GIF แบบเคลื่อนไหวขนาดใหญ่) ไม่กี่นามสกุลภาพการปิดกั้นฉันสามารถหามีแนวโน้มที่จะบล็อกภาพทั้งหมดชนิด อย่างไรก็ตามมีSafe Blockerซึ่งมีฟังก์ชั่นปิดกั้น GIF เพิ่มเติม ฉันไม่สามารถทดสอบได้ในขณะนี้ แต่มันก็ดูดี
Synetech

เพียงแค่พยายามที่ปลอดภัย Blocker มันให้เว็บไซต์พร็อกซี่ซึ่งไม่ใช่สิ่งที่ฉันต้องการ
mshsayem

อาน่าละอาย พวกเขาไม่ได้พูดถึงว่าแต่มันจะอธิบายถึงการตรวจสอบว่ามันช้า แปลกที่เรื่องนี้ยังไม่ได้รับการแก้ไข อาจเป็นเพราะหน้าเว็บที่เต็มไปด้วยภาพเคลื่อนไหว GIF ยังค่อนข้างใหม่ดังนั้นจึงยังไม่ได้รับการแก้ไข ลองใช้userscriptนี้ มันไม่ทำงานใน Chromium รุ่นเก่า แต่อาจใช้งานได้กับ Chrome เวอร์ชันใหม่กว่า
Synetech

คำตอบ:


1

ฉันยังไม่มีนามสกุล / ปลั๊กอินที่เหมาะสม ฉันได้ลองใช้สคริปต์ผู้ใช้ต่อไปนี้กับTamperMonkeyใน Chrome มันใช้งานได้ดีมาก การบล็อก gif ทั้งหมด (รวมถึง ajax gifs) ในเว็บไซต์ 9gag.com ด้วยเหตุผลบางอย่าง ajax gifs ใน google + ไม่ถูกบล็อก (กำลังตรวจสอบว่า) ขอบคุณSynetecสำหรับความช่วยเหลือความพยายามและรหัสของเขา นี่คือสคริปต์ผู้ใช้ (สคริปต์ส่วนใหญ่ถูกคัดลอกมาจากuserscript ของ 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);

ขณะนี้:

  1. ติดตั้ง TamperMonkey
  2. ไปที่แผงควบคุม
  3. คลิกที่ 'สคริปต์ใหม่'
  4. วางรหัสด้านบน
  5. บันทึกและดูว่าใช้งานได้หรือไม่ (ใช้ได้กับ 9gag.com เท่านั้นตอนนี้ แต่คุณสามารถเปลี่ยน@matchคำสั่งเพื่อให้ตรงกับเว็บไซต์ใด ๆ ที่คุณต้องการใช้@match http://*/*เพื่อทำงานกับทุกไซต์ (http) เปลี่ยนเป็นhttpsสำหรับไซต์ http ที่ปลอดภัยเช่น google +)

แย่มากที่มีผู้ใช้ไม่กี่รายที่เริ่มอัปโหลด GIF ด้วยนามสกุล. jpg เรียกว่าJPEGs เคลื่อนไหว สันนิษฐานว่าเป็นความโง่เขลานี้เนื่องจากบางเว็บไซต์ไม่อนุญาตให้อัปโหลด GIF แต่ทำเครื่องหมายเฉพาะส่วนขยายเพื่อพิจารณาประเภทไฟล์ แบบเดียวกับที่คุณทำ ฉันเดาว่าif ($.trim(ext.toLowerCase()) != "gif")จะจับ GIF เพียงครึ่งเดียว
มาร์ติน

0

บางส่วน Firefox ที่ดี:

adblock - การปิดกั้นโฆษณาที่ชาญฉลาด

flashblock - แฟลชทั้งหมดจะถูกบล็อกจนกว่าคุณจะไม่คลิก

imgblock - บล็อกภาพทั้งหมดทุกที่ (สามารถปิดได้ด้วยการคลิกชั่วคราว)

ghostery - บล็อกเว็บไซต์โซเชียลเน็ตเวิร์ก (พวกเขาสามารถเพิ่มได้กว่าร้อย kbyte ต่อการเยี่ยมชมเพจ!)


ฉันรู้เกี่ยวกับสิ่งเหล่านี้ แต่นั่นไม่ได้ทำในสิ่งที่ฉันต้องการ ie หยุดการดาวน์โหลด (ไม่เพียง แต่ทำให้มันมองไม่เห็น) เพียงแค่ภาพ GIF
mshsayem
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.