Как остановить загрузку картинок в chrome / firefox?

4001
mshsayem

Когда я gifзахожу на любую страницу, содержащую анимированные картинки (Google+, 9gag и т. Д.), Все они начинают загружаться. Моя пропускная способность ограничена, и я не хочу, чтобы те загружались, если я действительно не хочу просматривать. Я видел некоторые плагины, которые просто останавливают анимацию, но само изображение все равно загружается . Первоначально на 9gag.com была эта функция, которая просто показывала статичное изображение (если это анимированный GIF-файл) и начала скачивать только после того, как я щелкнул по нему (сейчас его удалили).

Итак, есть ли плагин, который может остановить загрузку GIF? Или мне нужно написать расширение? Любое предложение?

8
Я предполагаю, что вы не хотите блокировать * все * изображения, верно? Проблема в том, что было бы достаточно просто заблокировать все файлы `.gif`, но если вы хотите заблокировать * только анимированные *` .gif` файлы, тогда расширению все равно придется загружать любые файлы `.gif` встроенный в страницу, чтобы определить, анимированы они или нет. Лучше всего заблокировать все GIF-файлы. (Я просто подумал об идее, которая могла бы работать хорошо, но я не думаю, что это было сделано. Если у меня будет время, я попытаюсь что-то сделать, если никто не знает о существующем решении.) Synetech 10 лет назад 0
Блокировка всех GIF будет делать. Все остальные изображения должны быть видны. Я гуглил, но кажется, что все обеспокоены _distraction_ анимации. Итак, большинство плагинов просто останавливают анимацию. Я мог бы написать расширение Chrome; но мне было просто интересно, существует ли какое-либо другое решение. mshsayem 10 лет назад 0
Поскольку анимированные GIF-файлы часто занимают несколько мегабайт, я согласен с тем, что они могут быть довольно неприятными, особенно если их несколько на странице (вы могли бы практически создать DoS со страницей, загруженной гигантскими анимированными GIF-файлами). Несколько [расширений для блокировки изображений] (https://chrome.google.com/webstore/search-extensions/block%20images), которые я могу найти, как правило, относятся к типу блочных изображений. Однако есть [* Safe Blocker *] (https://chrome.google.com/webstore/detail/safebrowser/bohffanknhdkpedmpcgephfdgabemfkb/details), который имеет дополнительную функцию блокировки GIF. Я не могу проверить это в настоящее время, но это выглядит многообещающим. Synetech 10 лет назад 1
Только что попробовал _Safe Blocker_. Это просто дает вам прокси-сайт, который определенно не то, что я хочу. mshsayem 10 лет назад 0
Ах, позор. Они [не упомянули об этом] (https://chrome.google.com/webstore/detail/safebrowser/bohffanknhdkpedmpcgephfdgabemfkb/details), но это объясняет [обзор говорит, что он медленный] (https://chrome.google. ком / Webstore / подробно / safebrowser / bohffanknhdkpedmpcgephfdgabemfkb / рецензии). Странно, что это еще не решено. Возможно, это потому, что страницы, заполненные анимированными GIF-файлами, все еще довольно новы, поэтому они еще не решены. Попробуйте это [userscript] (http://userscripts.org/scripts/show/164679). Он не работал в старой версии Chromium, но может работать в более новых версиях Chrome. Synetech 10 лет назад 0
Попробовал в хроме. Ошибка: `$ не определено`. Кажется, что `@ require` не разрешено в Chrome. Кроме того, я думаю, что скрипт не сможет остановить загрузку ajax `gif`s, которые добавляются при прокрутке вниз. mshsayem 10 лет назад 0
Ах да, я забыл упомянуть, что вы должны использовать [Tampermonkey] (https://chrome.google.com/webstore/detail/tampermonkey/dhdgffkkebhmkfjojejmpbldmpobfkfo?hl=en), чтобы использовать такие пользовательские скрипты. Удалите скрипт, установите Tampermonkey, перейдите на страницу скрипта и кнопка `[Install]` должна отличаться; он должен иметь значок Tampermonkey. Теперь он будет поддерживать более продвинутые вещи GreaseMonkey, которые не поддерживаются в Chrome. И нет, я не думаю, что скрипт поддерживает динамическую блокировку; похоже, он запускается только один раз при загрузке страницы. Synetech 10 лет назад 0

2 ответа на вопрос

1
mshsayem

У меня пока нет подходящего расширения / плагина. Я попытался использовать следующий пользовательский скрипт с TamperMonkey в Chrome. Работает отлично. Блокировка всех GIF-файлов (в том числе AJAX) на сайте 9gag.com. По какой-то причине ajax gif в google + не блокируются (это расследуется). Большое спасибо 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 +).
К сожалению, довольно много пользователей начали загружать GIF-файлы с расширением .jpg. Так называемые * анимированные JPEG *. Предположительно этот идиотизм был заявлен, потому что некоторые сайты не разрешали загружать GIF-файлы, но проверяли только расширение, чтобы определить тип файла. Точно так же, как вы делаете это. Я предполагаю, что `if ($ .trim (ext.toLowerCase ())! =" Gif ")` поймает только половину GIF. Martin 9 лет назад 0
0
peterh

Some nice firefox addons:

adblock - intelligent blocking of ads

flashblock - all flash will be blocked until you doesn't click them

imgblock - blocks ALL images, everywhere (can be with a click temporarily disabled)

ghostery - blocks the social networking sites (they can make more hundred kbyte per page visit!)

Я знаю об этом. Но те не делают то, что я хочу. то есть прекратить скачивание (не только сделать его невидимым) просто изображения GIF. mshsayem 10 лет назад 0