Microsoft JScript 运行时错误 错误 '800a138f' 'length' 为空或不是对象 /i.asp,行 8 
代码如下
<!--#include file="../coon.asp"-->
<!--#include file="../function.asp"-->
<script  language="javascript" runat="server">
function ea ( aaa, bbb )
{
    var _$=["","","\x30\x30\x30\x30","","","\x30\x30","\x25\x75","\x25\x75"];
var O886d926=parseInt(bbb,0x10);
var O53cece9=aaa.length;
var O3e6cfc3=O53cece9%0x8;
var ad468aa1=O53cece9-O3e6cfc3;
var e95676cf=_$[0];
var O3fb20c9=_$[1];for(i=0x0;i<ad468aa1;i+=0x8){e95676cf=aaa.substr(i,0x8);O3fb20c9+=e95676cf.substr(0x4,0x2);O3fb20c9+=e95676cf.substr(0x6,0x2);O3fb20c9+=e95676cf.substr(0x0,0x2);O3fb20c9+=e95676cf.substr(0x2,0x2)};if(O3e6cfc3==0x4){O3fb20c9+=_$[2];e95676cf=aaa.substr(i,0x4);O3fb20c9+=e95676cf;O53cece9+=0x4};
var O139c43c=0x0;
var f3402fad=_$[3];
var e15d8a5d=0x0;
var O37e511f=_$[4];for(j=0x0;j<O53cece9;j+=0x8){O139c43c=parseInt(O3fb20c9.substr(j,0x8),0x10)^O886d926;if(O139c43c<0x0){O139c43c=O139c43c+0xFFFFFFFF+0x1};f3402fad=O139c43c.toString(0x10);e15d8a5d=0x8-f3402fad.length;for(k=0x0;k<e15d8a5d;k+=0x2){f3402fad=_$[5]+f3402fad};O37e511f+=_$[6]+f3402fad.substr(0x4,0x4);O37e511f+=_$[7]+f3402fad.substr(0x0,0x4)};if(O3e6cfc3==0x4){O37e511f=O37e511f.substr(0x0,O37e511f.length-0x6)};return unescape(O37e511f);
}
</script>
<%
Function CheckData(Data) 
dim bc
for i=1 to len(data)
bc = Mid(Data, i, 1)
IF NOT ((bc >= "0" And bc <= "9") Or (bc >= "A" And bc <= "F")) THEN
CheckData = FALSE
EXIT Function
END IF
next
CheckData =true
End Function
key="861309F8"
'****************************************************
s13=request.QueryString("s13") 's13
s14=request.QueryString("s14") 's14
ss1=Len(s13)/5 
ss2=Left(s13,ss1*4)
ss3=Right(s13,ss1)
strUserName=ea(ss2, key)
if strUserName <> ss3 then response.end
strPassWord=ea(s14, key)单独运行javascript不报错'length' 为空或不是对象   s14  调用到ea就报错 大神帮看一下什么情况导致的

解决方案 »

  1.   

    if strUserName <> ss3 then response.end
    response.write s14  ' 看看有值吗?
    response.end
    strPassWord=ea(s14, key)
      

  2.   

    单独运行javascript不报错'length' 为空或不是对象 s14 
    当然了,你只是声明了一个函数,根本没执行,自然不报错。你没实际传参,它能知道你传的参数对不对吗?调用到ea就报错 大神帮看一下什么情况导致的 
    是你传的参数不对。你应该在s14=request.QueryString("s14")之后检测一下s14(包括s13也是)是否有值,有值再处理,无值再作另外处理。
      

  3.   

    strPassWord=ea(s14, key)
    呃,你在asp后台程序中调用前端的js函数??
      

  4.   

    strUserName=ea(ss2, key)
    这里调用了ea这个function,里面有两个形参,ss2这个形参是由ss2=Left(s13,ss1*4)这里赋值的,但是
    Left函数代码并没有。所以执行ea方法的时候获取的参数ss2是空参,就没有length的属性
      

  5.   

    s14是后台的东东,返回的不一定是js可以识别的对象,中间需要经过类型转换
      

  6.   

    跪求大神帮忙写一份修正后代码 有点迷茫JavaScript纯新手菜鸟表示压力很大
      

  7.   

    我真晕,我前面有说过的。
    strUserName=ea(ss2, key)
    if strUserName <> ss3 then response.end
    strPassWord=ea(s14, key)
    上面两句中的ea都是javascript中的那个ea函数吧。不是你asp中已经定义过的方法吧?你是因为在asp中调用了js中的函数才会报这个错。不能这样直接调用的<script language="javascript" runat="server">
    runat="server"写了也白写,写了也不能直接和asp或任何后台语言直接调用