ImagePref est une extension qui vous permet de basculer l'affichage des images sans rechargement, bien que la page d'accueil mentionne que cela peut ne pas fonctionner dans certaines circonstances (non nommées). J'ai remarqué qu'il fonctionnait lentement s'il y a beaucoup d'onglets ouverts.
Si vous êtes prêt à accepter des compromis, voici un autre bookmarklet qui fait une partie de ce que vous demandez :
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);}());
Il essaie de masquer et de démasquer les images d'arrière-plan, <img>
et <input>
y <object>
tags avec type="image"
mais il existe encore de nombreuses méthodes de diffusion d'images plus étranges qu'il ne détectera pas, telles que <embed>
o <object>
s avec <param>
tags. Il ne fonctionnera pas sur plusieurs domaines en raison des mesures de sécurité des navigateurs (ce qui est généralement perceptible lorsqu'il y a des publicités dans les domaines suivants <iframes>
), et elle peut être remplacée par une feuille de style de l'utilisateur ou bloquée si une page utilise la fonction !important
.
Code source lisible pour les intéressés :
(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);
}());