在以下的common.js文件中定义了一个Round的函数
<script language="javascript"   type="text/javascript"  src="/lib/common.js"></script>然后新建一个debug.asp文件,在该文件中引用该函数
<html>
<script language="javascript"   type="text/javascript"  src="/lib/common.js"></script>
<body>
   <script language="javascript">alert(Round(11.223,2));</script>
</body>
<html>
可正常运行,但是我一把这个文件后缀名改为.aspx时却报 "缺少对象"的错误,不知为何?

解决方案 »

  1.   

    /lib/common.js的文件内容为:
    现发现如果把onlydigital这个函数拿掉就可以在asp.net中那样调用,为何必在asp中不拿掉也可以啊,奇怪function Round(a_Num , a_Bit)
    {
    return( Math.round(a_Num * Math.pow (10 , a_Bit)) / Math.pow(10 , a_Bit));

    function onlydigital()
    {   
      var iCode=event.keyCode;  if(((iCode<48)||((iCode>57)&&(iCode<96))||iCode>105)&&((iCode!=8)&&(iCode!=109)&&(iCode!=189)&&(iCode!=9)&&(iCode!=229)&&(iCode!=13)&&(iCode!=110)&&(iCode!=190)&&(iCode!=46)&&(iCode!=27))&&((iCode<37)||(iCode>40)))
      {
        event.returnValue=false;
      }
    }
      

  2.   

    asp页面要转换成asp.net页面的,不是光只改一下文件后缀名就可以的。
      

  3.   

    event.keyCode;
    是不是这个keyCode会产生问题
      

  4.   

    我试了下,甚至把这个文件改成htm文件也可以运行,就是改成.aspx 文件就不能调用src="common.js"
    中的函数了
      

  5.   

    如果在.aspx中用include这个.js 文件也能调用,就是用<script language="javascript" src=".js">
    </script>这样写不行,但其它格式.asp,.htm文件中这样调用都没问题
      

  6.   

    是因为asp.net文件编码的问题,在web.config中加入如下语句即可:
    <configuration>
    <system.web>
    <globalization responseEncoding="gb2312" requestEncoding="gb2312" fileEncoding="gb2312"/>
    </system.web>
    </configuration>
      

  7.   

    你以为aspx和asp一样解释执行的啊,改后缀名就行了???
      

  8.   

    谢谢webdiyer,问题确如你所说,目前已解决。