Как определить / настроить параметр «Игнорировать цвета, указанные на веб-страницах» в IE? - PullRequest
0 голосов
/ 17 февраля 2020

Мне нужно стилизовать элемент, если IE 'игнорировать цвета, указанные на веб-страницах', включен, но я не нашел способа сделать это.

Кажется, есть только один вопрос (о котором я знаю), который проверяет, возвращает ли вычисленный фоновый стиль элемента «rgb (255, 255, 255)» или «#fff», если этот режим включен, но это больше не работает.

Есть ли способ обнаружить этот режим с помощью CSS / JavaScript?

1 Ответ

0 голосов
/ 13 марта 2020

Это помогло мне обнаружить режим игнорирования цвета:

(function (W, $) {
    'use strict';

    var $body = $("body")
        , interval = $body.data("ignore-color-int") || 4000
        , debug = W.location.href.match(/debug=1/) || $body.data("debug")
        , C = W.console
        , D = C && debug
        ;

    function detect_ignore_color() {

        var hcmclass = "no-ignore-color"
            , $hcm = $("<p style='position:absolute;top:0;left:-999px;background-color:#878787;'>T</p>")
            , testcolor = $hcm.css("background-color").toLowerCase()
            ;

        $.isIgnoreColor = (testcolor !== "#878787" && testcolor !== "rgb(135, 135, 135)");

        if ($.isIgnoreColor) {
            hcmclass = "ignore-color";
            var accessibleElements = document.querySelectorAll('.accessible-hidden-text');

            for (var i = 0; i < accessibleElements.length; i++) {
                accessibleElements[i].style.opacity = 1;
            }
        }

        $body.removeClass('ignore-color no-ignore-color').addClass(hcmclass);

        D && C.log('> ', interval, hcmclass);
    }

    $(W).resize(detect_ignore_color);

    $(function () {
        detect_ignore_color();

        W.setInterval(detect_ignore_color, interval);
    });

}(window, jQuery));
...