如何将两个方法合并为一个(.style + .getcomputed 样式)

How to merge two methods in one (.style + .getcomputed style)

本文关键字:style 一个 样式 getcomputed 方法 两个 合并      更新时间:2023-09-26

我有一些形式。我需要检查此表单中所有元素的背景颜色。但是在某些元素中,颜色是由<style>定义的,而另一个元素的颜色是由css定义的。我需要将两种方法合并为一个(在硒 IDE 中)

这是我的方法:

1(.样式):

var form = window.document.forms[0]; 
elements = form.elements; 
for (var i = 0, len = elements.length; i < len; i++) {
    color = elements[i].style.backgroundColor;
}

2(.getcomputedstyle):

var form = window.document.forms[0]; 
elements = form.elements; 
for (var i = 0, len = elements.length; i < len; i++) {
var color = window.document.defaultView.getComputedStyle(elements[i])
        .getPropertyValue('background-color');
var colorArr = color.replace(/[''rrgb''('')]/g, '').split(','); 
var hexString = '#'
        + parseInt(colorArr[0]).toString(16)
        + parseInt(colorArr[1]).toString(16)
        + parseInt(colorArr[2]).toString(16);
}

第二种方法是获取浏览器中实际显示的颜色(它们可能来自内联样式,或内部和/或外部 css),因此您根本不需要第一个(颜色可能已被覆盖)。第二种方法已经将 rgb 值转换为十六进制(您是否需要相反?