JavaScript在一些变量中提供帮助

JavaScript在一些变量中提供帮助,javascript,html,Javascript,Html,我正在分析一个javascript代码,但我在一些行中感到困惑,例如,我有这个代码 function getStyle(el,styleProp) { var x = document.getElementById(el); if (x.currentStyle) var y = x.currentStyle[styleProp]; else if (window.getComputedStyle) var y = document.defaultView.getCompute

我正在分析一个javascript代码,但我在一些行中感到困惑,例如,我有这个代码

function getStyle(el,styleProp)
 {
var x = document.getElementById(el);
if (x.currentStyle)
    var y = x.currentStyle[styleProp];
else if (window.getComputedStyle)
    var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);

if (y.substr(0, 1) == "#"){ return y; } else {

var value = y.split(',');

var R = value[0].substr(4);
var G = value[1];
var B = value[2].substr(0, value[2].length-1);

var RGB =  "#" + toHex(R)+ toHex(G)+toHex(B);

return RGB;

 }
}


function toHex(N) {
if (N==null) return "00";
N=parseInt(N); if (N==0 || isNaN(N)) return "00";
N=Math.max(0,N); N=Math.min(N,255); N=Math.round(N);
return "0123456789ABCDEF".charAt((N-N%16)/16)
  + "0123456789ABCDEF".charAt(N%16);
}




function pw (form)
{

var d1, d2, d3;

if (navigator.appName == "Netscape"){
d1= getStyle('content', 'background-color'); 
} else {
d1= getStyle('content', 'backgroundColor'); 
}
     d2=form.Name.value;
     d3=form.Name2.value;
首先,我不知道变量“R”、“G”和“B”在做什么,它们是否影响变量“d1”?我知道变量“d2”和“d3”是他们所说的值,但变量“d1”的值是多少


一些帮助将不胜感激。Tnx

d1=getStyle('content','background color')将获取内容的背景色。如果它的格式为#000000,则返回它,如果它的格式为红-绿-蓝(255255),则使用R、G、B存储该值,然后将其转换为十六进制并以十六进制形式返回#000000

此代码非常简单。变量R、G和B各自包含一种颜色,R-红色、G-绿色和B-蓝色。只有当样式尚未以十六进制格式表示颜色时,才会发生这种情况。它们能够将颜色转换回十六进制并返回。是的,在某种程度上,它们确实影响变量d1。如果背景色样式设置如下:背景色:#FF00FF d1将设置为#FF00FF。如果背景色设置如下:背景色:rgb(00,255,00)d1将为#0000FF,因为此函数需要一些不存在的格式,如:背景色:00,255,00(这是无效的CSS)


一般来说,这似乎是一个命名和编写都很糟糕的代码。

不要试图分析它。扔掉它,从头开始重写它——无论是颜色提取器还是十六进制转换器都不值得。