chrome / firefoxがgifをダウンロードするのを止める方法は?


8

アニメーションgifs(Google +、9gagなど)を含むページにアクセスすると、それらすべてがロードされているようです。私の帯域幅は制限されており、本当に見たいのでない限り、ダウンロードしたくありません。アニメーションを停止するだけのプラグインを見たことがありますが、画像自体はとにかくダウンロードされます。9gag.comには最初、この機能がありましたが、静止画像(アニメーションgifの場合)を表示し、クリックした後にのみダウンロードを開始しました(現在は削除されています)。

では、gifのダウンロードを停止できるプラグインはありますか?または、拡張機能を作成する必要がありますか?なにか提案を?


すべての画像をブロックたくないと思いますか?これの問題は、すべての.gifファイルをブロックするのは簡単なことですが、アニメーション .gifファイルのみをブロックする場合、拡張機能は.gifページに埋め込まれているファイルをダウンロードして、アニメーションかどうかを判断する必要があります。あなたの最善の策は、すべてのGIFをブロックすることです。(私はうまくいくかもしれないアイデアを考えただけですが、それができたとは思いません。時間があれば、既存のソリューションを誰も知らない場合に備えて、何か
工夫

すべてのgifをブロックすることで十分です。他のすべての画像が表示されます。私はググったが、誰もがアニメーションの気を散らすことについて心配しているようだ。したがって、ほとんどのプラグインはアニメーションを停止するだけです。chrome拡張を書くことができました。しかし、他の解決策が存在するかどうか疑問に思っていました。
mshsayem 2013

1
アニメーションGIFは数メガバイトになることが多いので、特にページに複数ある場合(特に、巨大なアニメーションGIFがロードされたページでDoSを作成する可能性がある場合)は、かなり厄介であることに同意します。私が見つけることができるいくつかの画像ブロック拡張機能は、すべての画像をブロックする種類のものです。ただし、オプションのGIFブロック機能を備えたSafe Blockerがあります。現時点ではテストできませんが、有望に見えます。
Synetech 2013

Safe Blockerを試しました。それはあなたに間違いなく私が望んでいるものではないプロキシサイトを与えるだけです。
mshsayem 2013

ああ、残念。彼らはそれについて言及しなかったが、それは遅いと言っているレビューを説明するだろう。これがまだ解決されていないのは奇妙です。おそらく、アニメーションGIFでいっぱいのページはまだかなり新しいため、まだ対処されていません。このユーザースクリプトをお試しください。古いバージョンのChromiumでは動作しませんでしたが、新しいバージョンのChromeでは動作する可能性があります。
Synetech、2013

回答:


1

まだ適切な拡張機能/プラグインがありません。ChromeのTamperMonkeyで次のユーザースクリプトを使用してました。それは素晴らしい働きをしています。サイト9gag.comのすべてのgif(ajax gifを含む)をブロックします。何らかの理由で、google +のajax gifがブロックされない(調査中)。Synetecの支援、努力、コードに感謝します。これがユーザースクリプトです(ほとんどのスクリプトは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 +)に変更します。

残念なことに、かなりの数のユーザーが.jpg拡張子の付いたGIFをアップロードし始めています。いわゆるアニメーションJPEG。一部のサイトではGIFのアップロードを許可せず、拡張子のみをチェックしてファイルの種類を判断したため、この馬鹿げたことはおそらく述べられています。同じように。私の推測ではif ($.trim(ext.toLowerCase()) != "gif")、GIFの半分しかキャッチしません。
マーティン

0

いくつかの素晴らしいFirefoxアドオン:

adblock-広告のインテリジェントなブロック

flashblock-クリックしない限り、すべてのフラッシュがブロックされます

imgblock-あらゆる場所ですべての画像をブロックします(一時的に無効にすることができます)

ghostery-ソーシャルネットワーキングサイトをブロックします(ページあたりの訪問数が100キロバイトに達する可能性があります!)


私はこれらについて知っています。しかし、それらは私がしたいことをしません。つまり、gifイメージだけをダウンロードしないようにします(単に非表示にするだけでなく)。
mshsayem
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.