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

Я ищу установку Firefox или расширение, которое может легко переключиться между показом и сокрытием всех изображений, не перезагружая страницу (подобный функции Opera - функция 'Show only cached images' является предпочтительной, но дополнительной в моем случае).

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

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

2
задан 21.12.2010, 23:30

2 ответа

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

Если Вы готовы принять компромиссы, вот другой bookmarklet, который делает часть из того, что Вы просите:

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
ответ дан 08.12.2019, 05:29

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

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)}})();

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

1
ответ дан 08.12.2019, 05:29

Теги

Похожие вопросы