Firefox — настройка/расширение для переключения между отображением и скрытием всех изображений без перезагрузки страницы

Firefox — настройка/расширение для переключения между отображением и скрытием всех изображений без перезагрузки страницы

Я ищу настройку или расширение Firefox, которое могло бы легко переключаться между показом и скрытием всех изображений без перезагрузки страницы (аналогично функции Opera — функция «Показывать только кэшированные изображения» предпочтительнее, но в моем случае необязательна).

Я нашел расширение, которое может показывать/скрывать изображения (Изображение-Показать-Скрыть), но для отображения/скрытия изображений необходимо перезагрузить страницу.

Я предпочитаю, чтобы страница не перезагружалась при отображении изображений со страницы, на которой ранее было установлено скрытие всех изображений.

решение1

ImagePrefэто расширение, которое позволяет вам переключать отображение изображений без перезагрузки, хотя на домашней странице упоминается, что оно может не работать в определенных (неназванных) обстоятельствах. Я заметил, что оно работает медленно, если открыто много вкладок.

Если вы готовы пойти на компромиссы, вот еще один букмарклет, который делает часть того, о чем вы просите:

javascript:(function(){function%20toggleImages(root){var%20stylesheet,stylesheetId='bookmarklet-hide-image-stylesheet',rules='*%20{%20background-image:%20none%20!important;%20}%20img,%20input[type=image],%20object[type^=image]%20{%20visibility:%20hidden%20!important;%20}',tagNames=['frame','iframe'],elements,i,j;stylesheet=root.getElementById(stylesheetId);if(stylesheet){stylesheet.parentNode.removeChild(stylesheet);}else{stylesheet=root.createElement('style');stylesheet.type='text/css';stylesheet.id=stylesheetId;if(stylesheet.styleSheet){stylesheet.styleSheet.cssText=rules;}else{stylesheet.appendChild(root.createTextNode(rules));}root.getElementsByTagName('head')[0].appendChild(stylesheet);}for(i=0;i<tagNames.length;i+=1){for(j=0,elements=root.getElementsByTagName(tagNames[i]);j<elements.length;j+=1){toggleImages(elements[j].contentDocument);}}}toggleImages(document);}());

Он пытается скрыть и отобразить фоновые изображения, <img>теги и <input>и <object>теги с type="image", но есть еще много более странных методов доставки изображений, которые он не распознает, например <embed>или <object>s с <param>тегами. Он не будет работать между доменами из-за мер безопасности браузера (обычно заметных, когда в <iframes>) и может быть переопределен пользовательской таблицей стилей или затёрт, если страница использует !important.

Исходный код для чтения, если кому интересно:

(function () {
    function toggleImages(root) {
        var stylesheet,
            stylesheetId = 'bookmarklet-hide-image-stylesheet',
            rules = '* { background-image: none !important; } img, input[type=image], object[type^=image] { visibility: hidden !important; }',
            tagNames = ['frame', 'iframe'],
            elements,
            i,
            j;

        stylesheet = root.getElementById(stylesheetId);
        if (stylesheet) {
            stylesheet.parentNode.removeChild(stylesheet);
        } else {
            stylesheet = root.createElement('style');
            stylesheet.type = 'text/css';
            stylesheet.id = stylesheetId;
            if (stylesheet.styleSheet) {
                stylesheet.styleSheet.cssText = rules;
            } else {
                stylesheet.appendChild(root.createTextNode(rules));
            }
            root.getElementsByTagName('head')[0].appendChild(stylesheet);
        }

        for (i = 0; i < tagNames.length; i += 1) {
            for (j = 0, elements = root.getElementsByTagName(tagNames[i]); j < elements.length; j += 1) {
                toggleImages(elements[j].contentDocument);
            }
        }
    }

    toggleImages(document);
}());

решение2

Вам не нужен javascript. Автор хотел простой способ переключения изображений без перезагрузки страницы, и вот он:

Используйте расширение "Stylish" для Firefox/Chrome/etc, затем используйте код, который я добавил ниже. Он будет работать для всех сайтов и скроет все изображения, видео (встроенные) и фоновые изображения.

@namespace url(http://www.w3.org/1999/xhtml);
/*Hide Images*/
IMG { display: none !important }
/*Hide Videos*/
iframe { display:none !important }
/*Hide Background*/
body {background:none !important }
a {background:none !important }
div {background-image:none !important }
div {background:none !important }

решение3

Я могу рассказать вам, как удалить все изображения на странице одним щелчком мыши и без перезагрузки страницы. Просто сохраните следующую строку кода в качестве закладки на панели закладок Firefox и назовите ее "zap images".

javascript:(function(){function%20toArray%20(c){var%20a,%20k;a=new%20Array;for%20(k=0;%20k%20<%20c.length;%20++k)a[k]=c[k];return%20a;}var%20images,%20img,%20altText;images=toArray(document.images);for%20(var%20i=0;%20i%20<%20images.length;%20++i){img=images[i];altText=document.createTextNode(img.alt);img.parentNode.replaceChild(altText,%20img)}})();

Теперь откройте веб-страницу с изображениями и нажмите на эту закладку. Вы только что удалили изображения. Однако, чтобы вернуть их обратно, вам нужно обновить страницу.

Связанный контент