Firefox - 페이지를 다시 로드하지 않고 모든 이미지 표시 및 숨기기 간을 전환하는 설정/확장

Firefox - 페이지를 다시 로드하지 않고 모든 이미지 표시 및 숨기기 간을 전환하는 설정/확장

페이지를 다시 로드하지 않고도 모든 이미지 표시 및 숨기기 사이를 쉽게 전환할 수 있는 Firefox 설정 또는 확장 프로그램을 찾고 있습니다(Opera의 기능과 유사 - '캐시된 이미지만 표시' 기능이 바람직하지만 제 경우에는 선택 사항입니다).

이미지를 표시하거나 숨길 수 있는 확장 프로그램을 찾았습니다(이미지-표시-숨기기) 그러나 이미지를 표시하거나 숨기려면 페이지를 다시 로드해야 합니다.

이전에 모든 이미지를 숨기도록 설정된 페이지에서 이미지 숨김을 해제할 때 페이지가 다시 로드되지 않는 것을 선호합니다.

답변1

ImagePref홈페이지에는 특정(이름이 지정되지 않은) 상황에서는 작동하지 않을 수 있다고 언급되어 있지만 다시 로드하지 않고도 이미지 표시를 전환할 수 있는 확장 프로그램입니다. 열린 탭이 많으면 느리게 실행되는 것으로 나타났습니다.

절충안을 기꺼이 받아들이고 싶다면 요청한 작업 중 일부를 수행하는 또 다른 북마크릿이 있습니다.

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

<img>를 사용하여 배경 이미지, 태그 및 <input>태그 <object>를 숨기 거나 숨기기 해제하려고 시도 하지만 태그를 사용하여 type="image"선택하지 않는 이상한 이미지 전달 방법이 여전히 많이 있습니다 . 브라우저 보안 조치로 인해 도메인 전체에서 작동하지 않으며(일반적으로 에 광고가 있는 경우 눈에 띕니다 ) 사용자 스타일시트에 의해 재정의되거나 페이지에서 를 사용하는 경우 방해될 수 있습니다 .<embed><object><param><iframes>!important

관심 있는 분들이 읽을 수 있는 소스 코드:

(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

자바스크립트가 필요하지 않습니다. OP는 페이지를 다시 로드하지 않고도 이미지를 쉽게 전환할 수 있는 방법을 원했으며 그 방법은 다음과 같습니다.

Firefox/Chrome/etc용 "Stylish" 확장 프로그램을 사용한 다음 아래에 추가한 코드를 사용하세요. 모든 사이트에서 작동하며 모든 이미지, 비디오(삽입) 및 배경 이미지를 숨깁니다.

@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

한 번의 클릭으로 페이지를 다시 로드하지 않고 페이지의 모든 이미지를 삭제하는 방법을 알려드릴 수 있습니다. 다음 코드 줄을 Firefox의 북마크 도구 모음에 북마크로 저장하고 이름을 "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)}})();

이제 이미지가 있는 웹페이지를 열고 이 북마크를 클릭하세요. 방금 이미지를 압축했습니다. 그러나 해당 항목을 다시 가져오려면 페이지를 새로 고쳐야 합니다.

관련 정보