如何在 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