一些变量中的JavaScript帮助

时间:2012-08-06 02:01:08

标签: 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.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。

2 个答案:

答案 0 :(得分:1)

这段代码很简单。变量R,G和B各包含一种颜色,R - 红色,G - 绿色和B - 蓝色。仅当样式尚未以十六进制格式表示颜色时才会发生这种情况。他们可以将颜色转换回十六进制并返回。所以是的,他们确实会影响变量d1。如果要设置背景颜色样式,那么:background-color:#FF00FF d1将是#FF00FF。如果背景颜色将设置如下:background-color:rgb(00,255,00)d1将是#0000FF,因为此函数需要一些不存在的格式,如下所示:background-color:00, 255,00(这不是有效的CSS)。

一般来说,这似乎是一个命名不好的代码。

答案 1 :(得分:0)

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