Firefox – Einstellung/Erweiterung zum Umschalten zwischen Anzeigen und Ausblenden aller Bilder, ohne die Seite neu zu laden

Firefox – Einstellung/Erweiterung zum Umschalten zwischen Anzeigen und Ausblenden aller Bilder, ohne die Seite neu zu laden

Ich suche nach einer Einstellung oder Erweiterung für Firefox, mit der ich problemlos zwischen dem Anzeigen und Ausblenden aller Bilder umschalten kann, ohne die Seite neu zu laden (ähnlich der Funktion von Opera – die Funktion „Nur zwischengespeicherte Bilder anzeigen“ ist vorzuziehen, in meinem Fall jedoch optional).

Ich habe eine Erweiterung gefunden, die Bilder anzeigen/ausblenden kann (Bild-Anzeigen-Ausblenden), aber die Seite muss neu geladen werden, um die Bilder anzuzeigen/auszublenden.

Ich bevorzuge, dass die Seite nicht neu geladen wird, wenn Bilder von einer Seite wieder eingeblendet werden, die zuvor so eingestellt war, dass alle Bilder ausgeblendet werden.

Antwort1

BildPrefist eine Erweiterung, mit der Sie die Bildanzeige ohne Neuladen umschalten können, obwohl auf der Homepage erwähnt wird, dass dies unter bestimmten (ungenannten) Umständen möglicherweise nicht funktioniert. Mir ist aufgefallen, dass es träge läuft, wenn viele Tabs geöffnet sind.

Wenn Sie bereit sind, Kompromisse einzugehen, finden Sie hier ein weiteres Bookmarklet, das einige der von Ihnen gewünschten Funktionen bietet:

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

Es versucht, Hintergrundbilder, <img>Tags und <input>und <object>Tags mit auszublenden und sichtbar zu machen type="image", aber es gibt noch viele seltsamere Bildübermittlungsmethoden, die es nicht erkennt, wie etwa „like“ <embed>oder <object>„s“ mit <param>Tags. Aufgrund von Browser-Sicherheitsmaßnahmen funktioniert es nicht domänenübergreifend (normalerweise erkennbar, wenn sich Werbung in befindet <iframes>) und es kann durch ein Benutzer-Stylesheet überschrieben oder überschrieben werden, wenn eine Seite verwendet !important.

Lesbarer Quellcode für Interessierte:

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

Antwort2

Sie brauchen kein Javascript. Der OP wollte eine einfache Möglichkeit, Bilder umzuschalten, ohne die Seite neu zu laden, und hier ist sie:

Verwenden Sie die Erweiterung „Stylish“ für Firefox/Chrome/usw. und dann den Code, den ich unten hinzugefügt habe. Er funktioniert auf allen Websites und blendet alle Bilder, Videos (eingebettet) und Hintergrundbilder aus.

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

Antwort3

Ich kann Ihnen sagen, wie Sie alle Bilder auf einer Seite mit einem Klick und ohne Neuladen der Seite löschen können. Speichern Sie einfach die folgende Codezeile als Lesezeichen in der Lesezeichen-Symbolleiste von Firefox und nennen Sie sie „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)}})();

Öffnen Sie nun eine Webseite mit Bildern und klicken Sie auf dieses Lesezeichen. Sie haben die Bilder gerade gelöscht. Um sie jedoch wiederherzustellen, müssen Sie die Seite aktualisieren.

verwandte Informationen