Pertanyaan Firefox - pengaturan / ekstensi untuk beralih antara menampilkan & menyembunyikan semua gambar, tanpa memuat ulang halaman


Saya mencari pengaturan Firefox atau ekstensi yang dapat dengan mudah beralih antara menampilkan dan menyembunyikan semua gambar tanpa memuat ulang halaman (mirip dengan fitur Opera - fitur 'Tampilkan hanya gambar yang di-cache' lebih disukai, tetapi opsional dalam kasus saya).

Saya telah menemukan ekstensi yang dapat menampilkan / menyembunyikan gambar (Gambar-Tampilkan-Sembunyikan) tetapi perlu memuat ulang halaman untuk menampilkan / menyembunyikan gambar.

Saya lebih suka halaman tidak dimuat ulang ketika memunculkan gambar dari halaman yang sebelumnya disetel untuk menyembunyikan semua gambar.


2
2017-12-21 16:18


asal




Jawaban:


ImagePref adalah ekstensi yang memungkinkan Anda untuk beralih tampilan gambar tanpa reload, meskipun beranda menyebutkan bahwa itu mungkin tidak berfungsi dalam keadaan tertentu (tidak disebutkan namanya). Saya telah memperhatikan itu berjalan lamban jika ada banyak tab yang terbuka.

Jika Anda bersedia menerima pengorbanan, berikut adalah bookmarklet lain yang melakukan beberapa hal yang Anda minta:

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

Ini mencoba menyembunyikan dan memunculkan gambar latar belakang, <img> tag dan <input> dan <object> tag dengan type="image", tetapi masih banyak metode penyampaian gambar yang lebih aneh yang tidak dapat diambil, seperti <embed> atau <object>dengan <param> tag. Ini tidak akan berfungsi di seluruh domain karena tindakan keamanan browser (biasanya terlihat ketika ada iklan di dalamnya <iframes>), dan itu dapat ditimpa oleh stylesheet pengguna atau terhentinya jika halaman digunakan !important.

Kode sumber yang dapat dibaca untuk yang tertarik:

(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
2017-12-30 22:07





Anda tidak perlu javascript. OP menginginkan cara mudah untuk mengubah gambar tanpa memuat ulang halaman dan ini dia:

Gunakan ekstensi "Bergaya" untuk Firefox / Chrome / etc, lalu gunakan kode yang saya tambahkan di bawah. Ini akan bekerja untuk semua situs dan itu akan menyembunyikan semua gambar, video (diembed), dan gambar latar belakang.

@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
2018-03-13 12:47



Ini awal yang bagus! Masalah utama dengan CSS Anda adalah bahwa ia akan dinonaktifkan background-color bersama background-image. Itu background properti adalah singkatan dan peramban menetapkan setiap bagiannya, jadi background-image: none !important harus cukup. - iglvzx


Saya dapat memberi tahu Anda cara membunuh semua gambar di halaman dengan satu klik dan tanpa memuat halaman. Simpan saja baris kode berikut sebagai bookmark di Toolbar Bookmark Firefox, dan beri nama "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)}})();

Sekarang, buka halaman web dengan gambar, dan klik pada bookmark ini. Anda baru saja merangsang gambar. Namun, untuk mengembalikannya, Anda perlu menyegarkan laman.


1
2017-12-21 16:43



Terima kasih untuk ini! Saya mencoba ini di halaman ini - ini dapat menyembunyikan sebagian besar gambar, tetapi bukan gambar logo SuperUser. Juga, adakah cara untuk membuat gambar ini ditampilkan dari halaman yang sebelumnya disetel untuk menyembunyikan gambar, tanpa memuat ulang? - galacticninja
Maaf tapi saya tidak tahu kode untuk membatalkan kejutan listrik. Mungkin seseorang yang tahu dapat membaginya dengan kami. - Mehper C. Palavuzlar