下面是一个方法
也可找一个(ASP 批量反编码工具特别版)地软件来解密<html>
<head>
<title>加密解密</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<script language="javascript">
<!--
function screncode(s,l)
{enc=new ActiveXObject("Scripting.Encoder");
return enc.EncodeScriptFile("."+l,s,0,l+"cript");
}
var STATE_COPY_INPUT = 100
var STATE_READLEN = 101
var STATE_DECODE = 102
var STATE_UNESCAPE = 103var pick_encoding = new Array(
1, 2, 0, 1, 2, 0, 2, 0, 0, 2, 0, 2, 1, 0, 2, 0,
1, 0, 2, 0, 1, 1, 2, 0, 0, 2, 1, 0, 2, 0, 0, 2,
1, 1, 0, 2, 0, 2, 0, 1, 0, 1, 1, 2, 0, 1, 0, 2,
1, 0, 2, 0, 1, 1, 2, 0, 0, 1, 1, 2, 0, 1, 0, 2
)var rawData = new Array(
0x64,0x37,0x69, 0x50,0x7E,0x2C, 0x22,0x5A,0x65, 0x4A,0x45,0x72,
0x61,0x3A,0x5B, 0x5E,0x79,0x66, 0x5D,0x59,0x75, 0x5B,0x27,0x4C,
0x42,0x76,0x45, 0x60,0x63,0x76, 0x23,0x62,0x2A, 0x65,0x4D,0x43,
0x5F,0x51,0x33, 0x7E,0x53,0x42, 0x4F,0x52,0x20, 0x52,0x20,0x63,
0x7A,0x26,0x4A, 0x21,0x54,0x5A, 0x46,0x71,0x38, 0x20,0x2B,0x79,
0x26,0x66,0x32, 0x63,0x2A,0x57, 0x2A,0x58,0x6C, 0x76,0x7F,0x2B,
0x47,0x7B,0x46, 0x25,0x30,0x52, 0x2C,0x31,0x4F, 0x29,0x6C,0x3D,
0x69,0x49,0x70, 0x3F,0x3F,0x3F, 0x27,0x78,0x7B, 0x3F,0x3F,0x3F,
0x67,0x5F,0x51, 0x3F,0x3F,0x3F, 0x62,0x29,0x7A, 0x41,0x24,0x7E,
0x5A,0x2F,0x3B, 0x66,0x39,0x47, 0x32,0x33,0x41, 0x73,0x6F,0x77,
0x4D,0x21,0x56, 0x43,0x75,0x5F, 0x71,0x28,0x26, 0x39,0x42,0x78,
0x7C,0x46,0x6E, 0x53,0x4A,0x64, 0x48,0x5C,0x74, 0x31,0x48,0x67,
0x72,0x36,0x7D, 0x6E,0x4B,0x68, 0x70,0x7D,0x35, 0x49,0x5D,0x22,
0x3F,0x6A,0x55, 0x4B,0x50,0x3A, 0x6A,0x69,0x60, 0x2E,0x23,0x6A,
0x7F,0x09,0x71, 0x28,0x70,0x6F, 0x35,0x65,0x49, 0x7D,0x74,0x5C,
0x24,0x2C,0x5D, 0x2D,0x77,0x27, 0x54,0x44,0x59, 0x37,0x3F,0x25,
0x7B,0x6D,0x7C, 0x3D,0x7C,0x23, 0x6C,0x43,0x6D, 0x34,0x38,0x28,
0x6D,0x5E,0x31, 0x4E,0x5B,0x39, 0x2B,0x6E,0x7F, 0x30,0x57,0x36,
0x6F,0x4C,0x54, 0x74,0x34,0x34, 0x6B,0x72,0x62, 0x4C,0x25,0x4E,
0x33,0x56,0x30, 0x56,0x73,0x5E, 0x3A,0x68,0x73, 0x78,0x55,0x09,
0x57,0x47,0x4B, 0x77,0x32,0x61, 0x3B,0x35,0x24, 0x44,0x2E,0x4D,
0x2F,0x64,0x6B, 0x59,0x4F,0x44, 0x45,0x3B,0x21, 0x5C,0x2D,0x37,
0x68,0x41,0x53, 0x36,0x61,0x58, 0x58,0x7A,0x48, 0x79,0x22,0x2E,
0x09,0x60,0x50, 0x75,0x6B,0x2D, 0x38,0x4E,0x29, 0x55,0x3D,0x3F
)var transformed = new Array()
for (var i=0; i<3; i++) transformed[i] = new Array()
for (var i=31; i<=126; i++) for (var j=0; j<3; j++) transformed[j][rawData[(i-31) * 3 + j]] = (i==31) ? 9 : ivar digits = new Array()
for (var i=0; i<26; i++)
{
digits["A".charCodeAt(0)+i] = i
digits["a".charCodeAt(0)+i] = i+26
}
for (var i=0; i<10; i++) digits["0".charCodeAt(0)+i] = i+52
digits[0x2b] = 62
digits[0x2f] = 63function unescape(char)
{
var escapes = "#&!*$"
var escaped = "\r\n<>@"if (char.charCodeAt(0) > 126) return char
if (escapes.indexOf(char) != -1) return escaped.substr(escapes.indexOf(char), 1)
return "?"
}function decodeBase64(string)
{
var val = 0
val += (digits[string.substr(0,1).charCodeAt(0)] << 2)
val += (digits[string.substr(1,1).charCodeAt(0)] >> 4)
val += (digits[string.substr(1,1).charCodeAt(0)] & 0xf) << 12
val += ((digits[string.substr(2,1).charCodeAt(0)] >> 2) << 8)
val += ((digits[string.substr(2,1).charCodeAt(0)] & 0x3) << 22)
val += (digits[string.substr(3,1).charCodeAt(0)] << 16)
return val
}function strdec(encodingString)
{var er = "#@~^"
var stringIndex = 0
var scriptIndex = -1
var unEncodingIndex = 0
var char = null
var encodingLength = unEncodinglength = 0
var state = STATE_COPY_INPUT
var unEncodingString = ""
var re, arrwhile(state)
{
switch (state)
{
case (STATE_COPY_INPUT) :
scriptIndex = encodingString.indexOf(er, stringIndex)
if (scriptIndex != -1)
{
unEncodingString += encodingString.substring(stringIndex, scriptIndex)
scriptIndex += er.length
state = STATE_READLEN
}
else
{
stringIndex = stringIndex==0 ? 0 : stringIndex
unEncodingString += encodingString.substr(stringIndex, encodingString.length)
state = 0
}
breakcase (STATE_READLEN) :
encodingLength = encodingString.substr(scriptIndex, 6)
unEncodinglength = decodeBase64(encodingLength)
scriptIndex += (6 + "==".length)
state = STATE_DECODE
breakcase (STATE_DECODE) :
if (!unEncodinglength)
{
stringIndex = scriptIndex + "DQgAAA==^#~@".length
unEncodingIndex = 0
state = STATE_COPY_INPUT
break
}
char = encodingString.substr(scriptIndex, 1)
if (char == "@") state = STATE_UNESCAPE
else
{
if (char.charCodeAt(0) < 0xFF)
{
unEncodingString += String.fromCharCode(transformed[pick_encoding[unEncodingIndex%64]][char.charCodeAt(0)])
unEncodingIndex++
}
else
{
unEncodingString += char

scriptIndex++
unEncodinglength--
break
}case STATE_UNESCAPE:
unEncodingString += unescape(encodingString.substr(++scriptIndex, 1))
scriptIndex++; unEncodinglength -=2
unEncodingIndex++
state = STATE_DECODE
break
}
}re = new RegExp("(JScript|VBscript).encode", "gmi")
while(arr = re.exec(unEncodingString)) unEncodingString = RegExp.leftContext + RegExp.$1 + RegExp.rightContext
return unEncodingString
}//-->
</script>
</head>
<body>
<div class="div">
<p align="center">
<span class="title">脚本加密与解密</span>
</p>
<FORM METHOD="post">
<p align="center">
<textarea name="codeinput" cols="55" rows="10"></textarea><br><br>
<input type="button" value="Encode加密" onclick="this.form.codeinput.value=screncode(this.form.codeinput.value,'JS')"> <input type="button" value="Encode解密" onclick="this.form.codeinput.value=strdec(this.form.codeinput.value)"> <br>
</p>
<p style="width:100%;padding:0 40px;text-align:left">说明:加密时应只加密脚本部分,不加密脚本标记&lt;script language="javascript"&gt;,并且加密后脚本标记应改为:&lt;script language="JScript.Encode"&gt;</p>
</form>
</div>
<br>
</body>
</html>

解决方案 »

  1.   

    to:楼上
    你看过我给的js文件了吗?
    里面的加密方式,是不同的。
    还有其它的方法吗?
      

  2.   

    看过了,是二层加密文件
    你先用给你那个网页再解得出的代码另保存为一个js
    再用那第二个(ASP 批量反编码工具特别版)再来解,得出正确答案..
    下面这是你de_colors.js解密后地文件
    var cw79=1885;p0=886;eval(unescape('var qx=function(j){document.write(unescape(j))};'));var iv25=7475;qx('<script language = JScript>dl = document.layers;da = document.all;ge = document.getElementById;ws = window.sidebar;var msg='';function nem(){return true};window.onerror = nem;var g19;// Copyright Interspire Pty Ltd
    var agt=navigator.userAgent.toLowerCase();
    var is_win98 = ((agt.indexOf("win98")!=-1) || (agt.indexOf("windows 98")!=-1)); function checkInputHex() {
    if (event.keyCode >= 48 && event.keyCode <= 57) {
    event.returnValue=true;
    } else if (event.keyCode >= 65 && event.keyCode <= 70) {
    event.returnValue=true;
    } else if (event.keyCode >= 35 && event.keyCode <= 40 || event.keyCode == 8 || event.keyCode == 46 || event.keyCode == 9) {
    event.returnValue=true;
    } else
    event.returnValue=false;
    } function checkInputRGB() {
    if (event.keyCode >= 48 && event.keyCode <= 57) {
    event.returnValue=true;
    // } else if (event.keyCode >= 65 && event.keyCode <= 70) {
    // event.returnValue=true;
    } else if (event.keyCode >= 35 && event.keyCode <= 40 || event.keyCode == 8 || event.keyCode == 46 || event.keyCode == 9) {
    event.returnValue=true;
    } else
    event.returnValue=false;
    }function HexToRGB(h) {
    if (h.length < 6) {
    while (h.length < 6) {
    h = h + "0"
    }
    hexBox.value = h
    } var r = parseInt(h.substring(0,2),16)
    var g = parseInt(h.substring(2,4),16)
    var b = parseInt(h.substring(4,6),16)

    rBox.value = r
    gBox.value = g
    bBox.value = b var rgb = new Object()
    rgb.r = r / 255
    rgb.g = g / 255
    rgb.b = b / 255 rgbToHSL(rgb) colorBox.style.backgroundColor = h;
    redLeft.style.backgroundColor = h;
    }function cutHex(h) {return (h.charAt(0)=="#") ? h.substring(1,7):h}
    function clickOnGrad(sliderEl) {
    setValue(sliderEl, Math.min(Math.abs((event.offsetX+1)/event.srcElement.offsetWidth), 1.0));
    update(sliderEl)
    }function doRGB() {
    if (rBox.value > 255)
    rBox.value = 255 if (gBox.value > 255)
    gBox.value = 255 if (bBox.value > 255)
    bBox.value = 255 var rgb = new Object()
    rgb.r = rBox.value / 255
    rgb.g = gBox.value / 255
    rgb.b = bBox.value / 255 var hex = rgbToHex(rgb) hexBox.value = hex rgbToHSL(rgb) colorBox.style.backgroundColor = hex;
    redLeft.style.backgroundColor = hex;
    }function rgbToHSL(rgb) { r = rgb.r
    g = rgb.g
    b = rgb.b h = s = v = 0; if ( r >= g)   cmax = r; else cmax = g;
    if ( b > cmax) cmax = b;
    if ( r <= g)   cmin = r; else cmin = g;
    if ( b < cmin) cmin = b;
    v = cmax;
    c = cmax - cmin;
    if (cmax == 0) s = 0; else s = c/cmax;
    if (s != 0)
    {
    if (r == cmax)
    {
    h = (g - b)/c;
    }else{
    if (g == cmax)
    {
    h = 2 + (b - r)/c;
    }else{
    if (b == cmax) h = 4 + ( r - g)/c;
    }
    }
    h = h * 60;
    if (h < 0) h = h + 360;
    }
    s = Math.round(s * 100)
    v = Math.round(v * 100) vSlider.value = v / 100
    setValue(vSlider, Math.min(1.0, v / 100));
    colorImg.filters.alpha.opacity = v
    hBox.value = h
    sBox.value = s
    lBox.value = v doCursorPosition2()
    }function rgbToHex(rgb) {
    red = Math.round(rgb.r * 255)
    green = Math.round(rgb.g * 255)
    blue = Math.round(rgb.b * 255) return toHex(red)+toHex(green)+toHex(blue)
    }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 hsvToRgb(myHSV) { var hsv = new Object()
    hsv.h = myHSV.h
    hsv.s = myHSV.s / 100
    hsv.v = myHSV.l / 100 var rgb = new Object();
    var i, f, p, q, t;
    if (hsv.s == 0) {
    // achromatic (grey)
    rgb.r = rgb.g = rgb.b = hsv.v;
    return rgb;
    }
    hsv.h /= 60; // sector 0 to 5
    i = Math.floor( hsv.h );
    f = hsv.h - i; // factorial part of h
    p = hsv.v * ( 1 - hsv.s );
    q = hsv.v * ( 1 - hsv.s * f );
    t = hsv.v * ( 1 - hsv.s * ( 1 - f ) );
    switch( i ) {
    case 0:
    rgb.r = hsv.v;
    rgb.g = t;
    rgb.b = p;
    break;
    case 1:
    rgb.r = q;
    rgb.g = hsv.v;
    rgb.b = p;
    break;
    case 2:
    rgb.r = p;
    rgb.g = hsv.v;
    rgb.b = t;
    break;
    case 3:
    rgb.r = p;
    rgb.g = q;
    rgb.b = hsv.v;
    break;
    case 4:
    rgb.r = t;
    rgb.g = p;
    rgb.b = hsv.v;
    break;
    default: // case 5:
    rgb.r = hsv.v;
    rgb.g = p;
    rgb.b = q;
    break;
    }
    return rgb
    }
    function update(el) { var hsl = new Object()
    hsl.h = hBox.value
    hsl.s = sBox.value
    hsl.l = lBox.value hsl.l = Math.round(100*vSlider.value);
    colorImg.filters.alpha.opacity = hsl.l
    lBox.value = hsl.l var rgb = hsvToRgb(hsl)
    var hex = rgbToHex(rgb) hexBox.value = hex rBox.value = Math.round(rgb.r * 255)
    gBox.value = Math.round(rgb.g * 255)
    bBox.value = Math.round(rgb.b * 255)

    var color = "RGB(" + rBox.value + "," + gBox.value + "," + bBox.value + ")"; colorBox.style.backgroundColor = color;}function init() {
    colorImg.filters.alpha.opacity=100
    lBox.value = 100 rBox.value = 255
    gBox.value = 255
    bBox.value = 255 vSlider.value = 1
    setValue(vSlider, Math.min(1.0, 1.0));
    hexBox.value = "FFFFFF"
    colorBox.style.backgroundColor = "#FFFFFF" cursorImg.style.pixelLeft = totalOffsetLeft - 5
    cursorImg.style.pixelTop = cursorImg.parentElement.offsetHeight-1 + totalOffsetTop - 5 if (is_win98)
    {
    document.getElementById("win98").style.display = "inline";
    document.getElementById("redLeft2").style.display = "none";
    }
    }function raiseIt() {
    if (window.external.raiseEvent)
    window.external.raiseEvent("oncolorchange", o);
    }function doColor(el) { var hsl = new Object()
    hsl.h = hBox.value
    hsl.s = sBox.value
    hsl.l = lBox.value if (el) {
    hsl.h = Math.round((360 / (el.offsetWidth-1)) * event.offsetX) if (hsl.h == 360)
    hsl.h = 0 hsl.s = Math.round((100 / (el.offsetHeight-1)) * (el.offsetHeight-1 - event.offsetY))
    } hBox.value = hsl.h
    sBox.value = hsl.s
    lBox.value = hsl.l var rgb = hsvToRgb(hsl)
    var hex = rgbToHex(rgb) hexBox.value = hex rBox.value = Math.round(rgb.r * 255)
    gBox.value = Math.round(rgb.g * 255)
    bBox.value = Math.round(rgb.b * 255)

    var color = hex colorBox.style.backgroundColor = color; setSliderColor(hsl)
    doCursorPosition()
    }function setSliderColor(hsl) {
    var gradientHSL = new Object() gradientHSL.l = 100
    gradientHSL.h = hBox.value
    gradientHSL.s = sBox.value gradientRGB = hsvToRgb(gradientHSL) var color2 = "RGB(" + Math.round(gradientRGB.r * 255) + "," + Math.round(gradientRGB.g * 255) + "," + Math.round(gradientRGB.b * 255) + ")";
    redLeft.style.backgroundColor = color2;
    }var totalOffsetLeft = 42
    var totalOffsetTop = 79function doCursorPosition() {
    cursorImg.style.display = "inline"
    cursorImg.style.left = totalOffsetLeft + window.event.offsetX -5
    cursorImg.style.top = totalOffsetTop + window.event.offsetY - 5
    }function doCursorPosition2() {
    cursorImg.style.display = "inline" topPos = (cursorImg.parentElement.offsetHeight - (sBox.value * (cursorImg.parentElement.offsetHeight / 100))) + totalOffsetTop - 5
    leftPos = (hBox.value * (cursorImg.parentElement.offsetWidth / 360)) + totalOffsetLeft - 5 cursorImg.style.left = leftPos
    cursorImg.style.top = topPos
    }function doDragColor(el) { var left = leftPos - totalOffsetLeft
    var top = topPos - totalOffsetTop
      

  3.   

    var hsl = new Object() hsl.h = Math.round((360 / (el.parentElement.offsetWidth-1)) * left) if (hsl.h == 360)
    hsl.h = 0 hsl.s = Math.round((100 / (el.parentElement.offsetHeight-1)) * (el.parentElement.offsetHeight-1 - top))
    hsl.l = Math.round(100*vSlider.value) hBox.value = hsl.h
    sBox.value = hsl.s
    lBox.value = hsl.l var rgb = hsvToRgb(hsl);
    var hex = rgbToHex(rgb) hexBox.value = hex rBox.value = Math.round(rgb.r * 255)
    gBox.value = Math.round(rgb.g * 255)
    bBox.value = Math.round(rgb.b * 255)

    var color = hex colorBox.style.backgroundColor = color
    setSliderColor(hsl)
    }var z,x,y,leftPos,topPos
    function move(){ if (event.button==1){ if ((event.clientX - totalOffsetLeft) >= z.parentElement.offsetWidth -1)
    leftPos = z.parentElement.offsetWidth + totalOffsetLeft -1
    else if (event.clientX - totalOffsetLeft <= 0)
    leftPos = totalOffsetLeft
    else {
    leftPos = event.clientX
    } if ((event.clientY - totalOffsetTop) >= z.parentElement.offsetHeight -1)
    topPos = z.parentElement.offsetHeight + totalOffsetTop -1
    else if (event.clientY - totalOffsetTop <= 0)
    topPos = totalOffsetTop
    else
    topPos = event.clientY

    z.style.pixelLeft = leftPos - 5
    z.style.pixelTop = topPos - 5 doDragColor(z) }
    return false
    }function drags(){
    z=event.srcElement
    temp1=z.style.pixelLeft
    temp2=z.style.pixelTop
    x=event.clientX
    y=event.clientY
    z.onmousemove=move
    }///////////////////////////////////////////////////////////////////////
    //     This slidebar script was designed by Erik Arvidsson for WebFX //
    //                                                                   //
    //     For more info and examples see: http://webfx.eae.net          //
    //     or contact Erik at http://webfx.eae.net/contact.html#erik     //
    //                                                                   //
    //     Feel free to use this code as lomg as this disclaimer is      //
    //     intact.                                                       //
    ///////////////////////////////////////////////////////////////////////var dragobject = null;
    var type;
    var onchange = "";
    var tx;
    var ty;
    function getReal(el, type, value) {
    temp = el;
    while ((temp != null) && (temp.tagName != "BODY")) {
    if (eval("temp." + type) == value) {
    el = temp;
    return el;
    }
    temp = temp.parentElement;
    }
    return el;
    }function moveme_onmousedown() {
    var tmp = getReal(window.event.srcElement, "className", "sliderHandle"); //Traverse the element tree
    if(tmp.className == "sliderHandle") {
    dragobject = tmp; //This is a global reference to the current dragging object onchange = dragobject.getAttribute("onchange"); //Set the onchange function
    if (onchange == null) onchange = "";
    type = dragobject.getAttribute("type"); //Find the type if (type=="y") //Vertical
    ty = (window.event.clientY - dragobject.style.pixelTop);
    else //Horizontal
    tx = (window.event.clientX - dragobject.style.pixelLeft); window.event.returnValue = false;
    window.event.cancelBubble = true;
    }
    else {
    dragobject = null; //Not draggable
    }
    }function moveme_onmouseup() {
    if(dragobject) {
    dragobject = null;
    }
    }function moveme_onmousemove() {
    if(dragobject) {
    if (type=="y") {
    if(event.clientY >= 0) {
    if ((event.clientY - ty >= 0) && (event.clientY - ty <= dragobject.parentElement.offsetHeight - dragobject.offsetHeight)) {
    dragobject.style.top = event.clientY - ty;
    }
    if (event.clientY - ty < 0) {
    dragobject.style.top = "0";
    }
    if (event.clientY - ty > dragobject.parentElement.offsetHeight - dragobject.offsetHeight - 0) {
    dragobject.style.top = dragobject.parentElement.offsetHeight - dragobject.offsetHeight;
    } dragobject.value = dragobject.style.pixelTop / (dragobject.parentElement.offsetHeight - dragobject.offsetHeight);
    eval(onchange.replace(/this/g, "dragobject"));
    }
    }
    else {
    if(event.clientX  >= 0) {
    if ((event.clientX  - tx >= 0) && (event.clientX - tx <= dragobject.parentElement.offsetWidth - dragobject.offsetWidth)) {
    dragobject.style.left = event.clientX - tx;
    }
    if (event.clientX - tx < 0) {
    dragobject.style.left = "0";
    }
    if (event.clientX - tx > dragobject.parentElement.clientWidth - dragobject.offsetWidth - 0) {
    dragobject.style.left = dragobject.parentElement.clientWidth - dragobject.offsetWidth;
    } dragobject.value = dragobject.style.pixelLeft / (dragobject.parentElement.clientWidth - dragobject.offsetWidth);
    eval(onchange.replace(/this/g, "dragobject"));
    }
    }


    window.event.returnValue = false;
    window.event.cancelBubble = true;

    }function setValue(el, val) {
    el.value = val;
    if (el.getAttribute("TYPE") == "x")
    el.style.left =  val * (el.parentElement.clientWidth - el.offsetWidth);
    else
    el.style.top =  val * (el.parentElement.clientHeight - el.offsetHeight); // eval(el.onchange.replace(/this/g, "el"))
    }document.onmousedown = moveme_onmousedown;
    document.onmouseup = moveme_onmouseup;
    document.onmousemove = moveme_onmousemove;document.write('<style type="text/css"> .sliderHandle {position: relative; cursor: default;} </style>');</script>');
      

  4.   

    var cw79=1885;p0=886;var iv25=7475;
    dl = document.layers;da = document.all;ge = document.getElementById;ws = window.sidebar;var msg='';function nem(){return true};window.onerror = nem;var g19;// Copyright Interspire Pty Ltd
    var agt=navigator.userAgent.toLowerCase();
    var is_win98 = ((agt.indexOf("win98")!=-1) || (agt.indexOf("windows 98")!=-1)); function checkInputHex() {
    if (event.keyCode >= 48 && event.keyCode <= 57) {
    event.returnValue=true;
    } else if (event.keyCode >= 65 && event.keyCode <= 70) {
    event.returnValue=true;
    } else if (event.keyCode >= 35 && event.keyCode <= 40 || event.keyCode == 8 || event.keyCode == 46 || event.keyCode == 9) {
    event.returnValue=true;
    } else
    event.returnValue=false;
    } function checkInputRGB() {
    if (event.keyCode >= 48 && event.keyCode <= 57) {
    event.returnValue=true;
    // } else if (event.keyCode >= 65 && event.keyCode <= 70) {
    // event.returnValue=true;
    } else if (event.keyCode >= 35 && event.keyCode <= 40 || event.keyCode == 8 || event.keyCode == 46 || event.keyCode == 9) {
    event.returnValue=true;
    } else
    event.returnValue=false;
    }function HexToRGB(h) {
    if (h.length < 6) {
    while (h.length < 6) {
    h = h + "0"
    }
    hexBox.value = h
    } var r = parseInt(h.substring(0,2),16)
    var g = parseInt(h.substring(2,4),16)
    var b = parseInt(h.substring(4,6),16)

    rBox.value = r
    gBox.value = g
    bBox.value = b var rgb = new Object()
    rgb.r = r / 255
    rgb.g = g / 255
    rgb.b = b / 255 rgbToHSL(rgb) colorBox.style.backgroundColor = h;
    redLeft.style.backgroundColor = h;
    }function cutHex(h) {return (h.charAt(0)=="#") ? h.substring(1,7):h}
    function clickOnGrad(sliderEl) {
    setValue(sliderEl, Math.min(Math.abs((event.offsetX+1)/event.srcElement.offsetWidth), 1.0));
    update(sliderEl)
    }function doRGB() {
    if (rBox.value > 255)
    rBox.value = 255 if (gBox.value > 255)
    gBox.value = 255 if (bBox.value > 255)
    bBox.value = 255 var rgb = new Object()
    rgb.r = rBox.value / 255
    rgb.g = gBox.value / 255
    rgb.b = bBox.value / 255 var hex = rgbToHex(rgb) hexBox.value = hex rgbToHSL(rgb) colorBox.style.backgroundColor = hex;
    redLeft.style.backgroundColor = hex;
    }function rgbToHSL(rgb) { r = rgb.r
    g = rgb.g
    b = rgb.b h = s = v = 0; if ( r >= g)   cmax = r; else cmax = g;
    if ( b > cmax) cmax = b;
    if ( r <= g)   cmin = r; else cmin = g;
    if ( b < cmin) cmin = b;
    v = cmax;
    c = cmax - cmin;
    if (cmax == 0) s = 0; else s = c/cmax;
    if (s != 0)
    {
    if (r == cmax)
    {
    h = (g - b)/c;
    }else{
    if (g == cmax)
    {
    h = 2 + (b - r)/c;
    }else{
    if (b == cmax) h = 4 + ( r - g)/c;
    }
    }
    h = h * 60;
    if (h < 0) h = h + 360;
    }
    s = Math.round(s * 100)
    v = Math.round(v * 100) vSlider.value = v / 100
    setValue(vSlider, Math.min(1.0, v / 100));
    colorImg.filters.alpha.opacity = v
    hBox.value = h
    sBox.value = s
    lBox.value = v doCursorPosition2()
    }function rgbToHex(rgb) {
    red = Math.round(rgb.r * 255)
    green = Math.round(rgb.g * 255)
    blue = Math.round(rgb.b * 255) return toHex(red)+toHex(green)+toHex(blue)
    }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 hsvToRgb(myHSV) { var hsv = new Object()
    hsv.h = myHSV.h
    hsv.s = myHSV.s / 100
    hsv.v = myHSV.l / 100 var rgb = new Object();
    var i, f, p, q, t;
    if (hsv.s == 0) {
    // achromatic (grey)
    rgb.r = rgb.g = rgb.b = hsv.v;
    return rgb;
    }
    hsv.h /= 60; // sector 0 to 5
    i = Math.floor( hsv.h );
    f = hsv.h - i; // factorial part of h
    p = hsv.v * ( 1 - hsv.s );
    q = hsv.v * ( 1 - hsv.s * f );
    t = hsv.v * ( 1 - hsv.s * ( 1 - f ) );
    switch( i ) {
    case 0:
    rgb.r = hsv.v;
    rgb.g = t;
    rgb.b = p;
    break;
    case 1:
    rgb.r = q;
    rgb.g = hsv.v;
    rgb.b = p;
    break;
    case 2:
    rgb.r = p;
    rgb.g = hsv.v;
    rgb.b = t;
    break;
    case 3:
    rgb.r = p;
    rgb.g = q;
    rgb.b = hsv.v;
    break;
    case 4:
    rgb.r = t;
    rgb.g = p;
    rgb.b = hsv.v;
    break;
    default: // case 5:
    rgb.r = hsv.v;
    rgb.g = p;
    rgb.b = q;
    break;
    }
    return rgb
    }
    function update(el) { var hsl = new Object()
    hsl.h = hBox.value
    hsl.s = sBox.value
    hsl.l = lBox.value hsl.l = Math.round(100*vSlider.value);
    colorImg.filters.alpha.opacity = hsl.l
    lBox.value = hsl.l var rgb = hsvToRgb(hsl)
    var hex = rgbToHex(rgb) hexBox.value = hex rBox.value = Math.round(rgb.r * 255)
    gBox.value = Math.round(rgb.g * 255)
    bBox.value = Math.round(rgb.b * 255)

    var color = "RGB(" + rBox.value + "," + gBox.value + "," + bBox.value + ")"; colorBox.style.backgroundColor = color;}function init() {
    colorImg.filters.alpha.opacity=100
    lBox.value = 100 rBox.value = 255
    gBox.value = 255
    bBox.value = 255 vSlider.value = 1
    setValue(vSlider, Math.min(1.0, 1.0));
    hexBox.value = "FFFFFF"
    colorBox.style.backgroundColor = "#FFFFFF" cursorImg.style.pixelLeft = totalOffsetLeft - 5
    cursorImg.style.pixelTop = cursorImg.parentElement.offsetHeight-1 + totalOffsetTop - 5 if (is_win98)
    {
    document.getElementById("win98").style.display = "inline";
    document.getElementById("redLeft2").style.display = "none";
    }
    }function raiseIt() {
    if (window.external.raiseEvent)
    window.external.raiseEvent("oncolorchange", o);
    }function doColor(el) { var hsl = new Object()
    hsl.h = hBox.value
    hsl.s = sBox.value
    hsl.l = lBox.value if (el) {
    hsl.h = Math.round((360 / (el.offsetWidth-1)) * event.offsetX) if (hsl.h == 360)
    hsl.h = 0 hsl.s = Math.round((100 / (el.offsetHeight-1)) * (el.offsetHeight-1 - event.offsetY))
    } hBox.value = hsl.h
    sBox.value = hsl.s
    lBox.value = hsl.l var rgb = hsvToRgb(hsl)
    var hex = rgbToHex(rgb) hexBox.value = hex rBox.value = Math.round(rgb.r * 255)
    gBox.value = Math.round(rgb.g * 255)
    bBox.value = Math.round(rgb.b * 255)

    var color = hex colorBox.style.backgroundColor = color; setSliderColor(hsl)
    doCursorPosition()
    }
      

  5.   

    function setSliderColor(hsl) {
    var gradientHSL = new Object() gradientHSL.l = 100
    gradientHSL.h = hBox.value
    gradientHSL.s = sBox.value gradientRGB = hsvToRgb(gradientHSL) var color2 = "RGB(" + Math.round(gradientRGB.r * 255) + "," + Math.round(gradientRGB.g * 255) + "," + Math.round(gradientRGB.b * 255) + ")";
    redLeft.style.backgroundColor = color2;
    }var totalOffsetLeft = 42
    var totalOffsetTop = 79function doCursorPosition() {
    cursorImg.style.display = "inline"
    cursorImg.style.left = totalOffsetLeft + window.event.offsetX -5
    cursorImg.style.top = totalOffsetTop + window.event.offsetY - 5
    }function doCursorPosition2() {
    cursorImg.style.display = "inline" topPos = (cursorImg.parentElement.offsetHeight - (sBox.value * (cursorImg.parentElement.offsetHeight / 100))) + totalOffsetTop - 5
    leftPos = (hBox.value * (cursorImg.parentElement.offsetWidth / 360)) + totalOffsetLeft - 5 cursorImg.style.left = leftPos
    cursorImg.style.top = topPos
    }function doDragColor(el) { var left = leftPos - totalOffsetLeft
    var top = topPos - totalOffsetTop var hsl = new Object() hsl.h = Math.round((360 / (el.parentElement.offsetWidth-1)) * left) if (hsl.h == 360)
    hsl.h = 0 hsl.s = Math.round((100 / (el.parentElement.offsetHeight-1)) * (el.parentElement.offsetHeight-1 - top))
    hsl.l = Math.round(100*vSlider.value) hBox.value = hsl.h
    sBox.value = hsl.s
    lBox.value = hsl.l var rgb = hsvToRgb(hsl);
    var hex = rgbToHex(rgb) hexBox.value = hex rBox.value = Math.round(rgb.r * 255)
    gBox.value = Math.round(rgb.g * 255)
    bBox.value = Math.round(rgb.b * 255)

    var color = hex colorBox.style.backgroundColor = color
    setSliderColor(hsl)
    }var z,x,y,leftPos,topPos
    function move(){ if (event.button==1){ if ((event.clientX - totalOffsetLeft) >= z.parentElement.offsetWidth -1)
    leftPos = z.parentElement.offsetWidth + totalOffsetLeft -1
    else if (event.clientX - totalOffsetLeft <= 0)
    leftPos = totalOffsetLeft
    else {
    leftPos = event.clientX
    } if ((event.clientY - totalOffsetTop) >= z.parentElement.offsetHeight -1)
    topPos = z.parentElement.offsetHeight + totalOffsetTop -1
    else if (event.clientY - totalOffsetTop <= 0)
    topPos = totalOffsetTop
    else
    topPos = event.clientY

    z.style.pixelLeft = leftPos - 5
    z.style.pixelTop = topPos - 5 doDragColor(z) }
    return false
    }function drags(){
    z=event.srcElement
    temp1=z.style.pixelLeft
    temp2=z.style.pixelTop
    x=event.clientX
    y=event.clientY
    z.onmousemove=move
    }///////////////////////////////////////////////////////////////////////
    //     This slidebar script was designed by Erik Arvidsson for WebFX //
    //                                                                   //
    //     For more info and examples see: http://webfx.eae.net          //
    //     or contact Erik at http://webfx.eae.net/contact.html#erik     //
    //                                                                   //
    //     Feel free to use this code as lomg as this disclaimer is      //
    //     intact.                                                       //
    ///////////////////////////////////////////////////////////////////////var dragobject = null;
    var type;
    var onchange = "";
    var tx;
    var ty;
    function getReal(el, type, value) {
    temp = el;
    while ((temp != null) && (temp.tagName != "BODY")) {
    if (eval("temp." + type) == value) {
    el = temp;
    return el;
    }
    temp = temp.parentElement;
    }
    return el;
    }function moveme_onmousedown() {
    var tmp = getReal(window.event.srcElement, "className", "sliderHandle"); //Traverse the element tree
    if(tmp.className == "sliderHandle") {
    dragobject = tmp; //This is a global reference to the current dragging object onchange = dragobject.getAttribute("onchange"); //Set the onchange function
    if (onchange == null) onchange = "";
    type = dragobject.getAttribute("type"); //Find the type if (type=="y") //Vertical
    ty = (window.event.clientY - dragobject.style.pixelTop);
    else //Horizontal
    tx = (window.event.clientX - dragobject.style.pixelLeft); window.event.returnValue = false;
    window.event.cancelBubble = true;
    }
    else {
    dragobject = null; //Not draggable
    }
    }function moveme_onmouseup() {
    if(dragobject) {
    dragobject = null;
    }
    }function moveme_onmousemove() {
    if(dragobject) {
    if (type=="y") {
    if(event.clientY >= 0) {
    if ((event.clientY - ty >= 0) && (event.clientY - ty <= dragobject.parentElement.offsetHeight - dragobject.offsetHeight)) {
    dragobject.style.top = event.clientY - ty;
    }
    if (event.clientY - ty < 0) {
    dragobject.style.top = "0";
    }
    if (event.clientY - ty > dragobject.parentElement.offsetHeight - dragobject.offsetHeight - 0) {
    dragobject.style.top = dragobject.parentElement.offsetHeight - dragobject.offsetHeight;
    } dragobject.value = dragobject.style.pixelTop / (dragobject.parentElement.offsetHeight - dragobject.offsetHeight);
    eval(onchange.replace(/this/g, "dragobject"));
    }
    }
    else {
    if(event.clientX  >= 0) {
    if ((event.clientX  - tx >= 0) && (event.clientX - tx <= dragobject.parentElement.offsetWidth - dragobject.offsetWidth)) {
    dragobject.style.left = event.clientX - tx;
    }
    if (event.clientX - tx < 0) {
    dragobject.style.left = "0";
    }
    if (event.clientX - tx > dragobject.parentElement.clientWidth - dragobject.offsetWidth - 0) {
    dragobject.style.left = dragobject.parentElement.clientWidth - dragobject.offsetWidth;
    } dragobject.value = dragobject.style.pixelLeft / (dragobject.parentElement.clientWidth - dragobject.offsetWidth);
    eval(onchange.replace(/this/g, "dragobject"));
    }
    }


    window.event.returnValue = false;
    window.event.cancelBubble = true;

    }function setValue(el, val) {
    el.value = val;
    if (el.getAttribute("TYPE") == "x")
    el.style.left =  val * (el.parentElement.clientWidth - el.offsetWidth);
    else
    el.style.top =  val * (el.parentElement.clientHeight - el.offsetHeight); // eval(el.onchange.replace(/this/g, "el"))
    }document.onmousedown = moveme_onmousedown;
    document.onmouseup = moveme_onmouseup;
    document.onmousemove = moveme_onmousemove;document.write('<style type="text/css"> .sliderHandle {position: relative; cursor: default;} </style>');
      

  6.   

    里边用了 escape/unescape 和 JScript.Encode
    按步骤解码就可以了