Estoy buscando una configuración o extensión de Firefox que pueda alternar fácilmente entre mostrar y ocultar todas las imágenes sin recargar la página (similar a la función de Opera: la función 'Mostrar solo imágenes en caché' es preferible, pero opcional en mi caso).
Encontré una extensión que puede mostrar/ocultar imágenes (Imagen-Mostrar-Ocultar) pero necesita recargar la página para mostrar/ocultar las imágenes.
Prefiero que la página no se vuelva a cargar al mostrar imágenes de una página previamente configurada para ocultar todas las imágenes.
Respuesta1
Preferencia de imagenes una extensión que le permite alternar la visualización de imágenes sin recargar, aunque la página de inicio menciona que puede no funcionar en ciertas circunstancias (sin nombre). He notado que funciona con lentitud si hay muchas pestañas abiertas.
Si está dispuesto a aceptar compensaciones, aquí tiene otro bookmarklet que hace algo de lo que está pidiendo:
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);}());
Intenta ocultar y mostrar imágenes de fondo, <img>
etiquetas y <input>
etiquetas <object>
con type="image"
, pero todavía hay muchos métodos de entrega de imágenes más extraños que no detecta, como <embed>
o <object>
con <param>
etiquetas. No funcionará en todos los dominios debido a las medidas de seguridad del navegador (que normalmente se notan cuando hay anuncios en <iframes>
) y puede ser anulado por una hoja de estilo de usuario o bloqueado si una página usa !important
.
Código fuente legible para los interesados:
(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);
}());
Respuesta2
No necesitas javascript. El OP quería una manera fácil de alternar imágenes sin recargar la página y aquí está:
Utilice la extensión "Elegante" para Firefox/Chrome/etc, luego utilice el código que agregué a continuación. Funcionará para todos los sitios y ocultará todas las imágenes, vídeos (incrustados) e imágenes de fondo.
@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 }
Respuesta3
Puedo decirte cómo eliminar todas las imágenes de una página con un solo clic y sin recargar la página. Simplemente guarde la siguiente línea de código como marcador en la barra de herramientas de marcadores de Firefox y asígnele el nombre "zap imágenes".
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)}})();
Ahora, abra una página web con imágenes y haga clic en este marcador. Acabas de eliminar las imágenes. Sin embargo, para recuperarlos, es necesario actualizar la página.