Firefox - налаштування / розширення для перемикання між показними та прихованими всіма зображеннями без перезавантаження сторінки


2

Я шукаю налаштування або розширення Firefox, яке може легко перемикатися між показом та приховуванням усіх зображень без перезавантаження сторінки (подібно до функції Opera - краща функція "Показати лише кешовані зображення", але в моєму випадку необов'язкова).

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

Я вважаю за краще, щоб ця сторінка не перезавантажувалася під час розкриття зображень зі сторінки, встановленої раніше, щоб приховати всі зображення.

Відповіді:


2

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

Він намагається приховати і UNHIDE фонових зображень, <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);
}());

3

Вам не потрібен JavaScript. ОП хотів простий спосіб перемикання зображень без перезавантаження сторінки, і ось це:

Використовуйте розширення "Стильний" для Firefox / Chrome / тощо, а потім використовуйте код, який я додав нижче. Він працюватиме для всіх сайтів і приховає всі зображення, відео (вбудовані) та фонові зображення.

@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 }

Це вдалий старт! Основна проблема вашого CSS полягає в тому, що він буде відключений background-colorразом із background-image. backgroundВластивість представляє собою скорочене і браузер встановлює кожну частину її, тому background-image: none !importantповинен вистачити.
iglvzx

1

Я можу вам сказати, як знищити всі зображення на сторінці одним клацанням і без перезавантаження сторінки. Просто збережіть наступний рядок коду як закладку на панелі інструментів закладок 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)}})();

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


Дякую за це! Я спробував це на цій сторінці - він може приховати більшість зображень, але не зображення логотипу SuperUser. Крім того, чи є спосіб зробити ці сховані зображення зі сторінки, попередньо встановленої для приховування зображень, без перезавантаження?
galacticninja

Вибачте, але я не знаю код, щоб скасувати скачування. Може, хтось, хто знає, може поділитися цим із нами.
Мехпер К. Палавузлар
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.