如何在 IE 中检测/定位“忽略网页上指定的颜色”设置?

Posted

技术标签:

【中文标题】如何在 IE 中检测/定位“忽略网页上指定的颜色”设置?【英文标题】:How to detect/target "Ignore colors specified on webpages" setting in IE? 【发布时间】:2020-06-01 04:15:46 【问题描述】:

如果启用了 IE 的“忽略网页上指定的颜色”,我需要设置元素的样式,但我没有找到这样做的方法。

似乎只有一个question(据我所知)测试一个元素的计算背景样式是否返回“rgb(255,255,255)”或“#fff”(如果启用此模式),但是不再起作用了。

有没有办法用 CSS/javascript 检测这种模式?

【问题讨论】:

IE 自 2016 年以来未更新,该检测如何突然停止工作? 也许以下链接会对您有所帮助。 ***.com/questions/12855917/… 我已经在线程中测试了解决方案,它对我有用。如果我启用该设置,测试结果为like this。它怎么不适合你?它返回其他值或其他什么?您是否包含了 jQuery 库?另外,你的IE版本是多少? 【参考方案1】:

这帮助我检测到忽略颜色模式:

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

【讨论】:

以上是关于如何在 IE 中检测/定位“忽略网页上指定的颜色”设置?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Asp.net 中使用 javascript 检测 IE 11

使用 JQuery,如何在 IE 中定位具有样式属性的元素?

如何在 CSS 中检测 IE 和 Edge 浏览器?

如何在 IE 11 中检测指针事件的手指计数

如何检测IE8兼容模式

如何使用有效的 CSS 定位 IE7 和 IE8?