Firefox - configuração / extensão para alternar entre mostrar e ocultar todas as imagens, sem recarregar a página

2

Estou procurando uma configuração ou extensão do Firefox que possa alternar facilmente entre mostrar e ocultar todas as imagens sem recarregar a página (semelhante ao recurso do Opera - o recurso "Exibir apenas imagens armazenadas em cache" é preferível, mas opcional no meu caso) ).

Encontrei uma extensão que pode mostrar / ocultar imagens ( Image-Show-Hide ) mas precisa recarregar a página para mostrar / ocultar as imagens.

Prefiro que a página não seja recarregada ao exibir imagens de uma página definida anteriormente para ocultar todas as imagens.

    
por galacticninja 21.12.2010 / 17:18

3 respostas

2

ImagePref é uma extensão que permite alternar a exibição de imagens sem recarregar, embora a página inicial indique que pode não funciona em certas circunstâncias (sem nome). Eu notei que ele está sendo executado vagarosamente se houver muitas guias abertas.

Se você estiver disposto a aceitar trocas, aqui está outro bookmarklet que faz parte do que você está pedindo:

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

Ele tenta ocultar e exibir imagens de plano de fundo, <img> tags e <input> e <object> tags com type="image" , mas ainda há muitos métodos mais estranhos de exibição de imagens, como <embed> ou <object> s com <param> tags. Ele não funcionará em todos os domínios devido às medidas de segurança do navegador (normalmente perceptíveis quando houver anúncios em <iframes> ), e pode ser substituído por uma folha de estilo do usuário ou clivada se uma página usar !important .

Código-fonte legível para os interessados:

(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);
}());
    
por 30.12.2010 / 23:07
3

Você não precisa de javascript. O OP queria uma maneira fácil de alternar imagens sem recarregar a página e aqui está:

Use a extensão "Stylish" para Firefox / Chrome / etc e use o código que eu adicionei abaixo. Ele funcionará para todos os sites e ocultará todas as imagens, vídeos (embeded) e imagens de fundo.

@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 }
    
por 13.03.2012 / 13:47
1

Eu posso dizer a você como matar todas as imagens em uma página com um clique e sem recarregar a página. Basta salvar a seguinte linha de código como um marcador na barra de ferramentas de favoritos do Firefox e nomeá-la como "imagens zap".

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

Agora, abra uma página da Web com imagens e clique neste favorito. Você acabou de zapped as imagens. No entanto, para trazê-los de volta, você precisa atualizar a página.

    
por 21.12.2010 / 17:43