我在程序中需要调用一个JS写的脚本,在用记事本写的静态的HTML文件中调用没有问题,但是在.Net的ASPX文件中调用就出错,提示“缺少对象”,可是我把引用的JS拷贝到这个ASPX页面里直接调用也不出错,可以正常使用。就是不能外部调用这个JS文件,这是什么原因啊?希望高手指点!

解决方案 »

  1.   

    关注!!!我也遇到一样的问题!非常讨厌!可能是.net自带的某些教本要冲突!也可能是.net中加入教本文件引用要在后台注册!~
    up一下!
      

  2.   

    通过链接调用JS就要考虑参数传递的问题了
    如果页面中参数没有传给函数
    那函数中的参数就没有实例化
    所以会出现缺少对象
    比如add函数中用到X参数
    在js文件中就要这样写
    function add(x)
    {
       var this.x = x;
       ......
    }在ASPX页面中调用
    var x_aspx = 1;
    add(x_aspx);
      

  3.   

    .NET好像有一个BUG,我曾经测试过,用二进制编辑器打.NET建立的页面文件发现文件头部好像多了一些东西(乱码),但用记事本打开是看不出来的。你用记事本建立的网页不存在上面的现像,它调用外部的JS脚本,可以正常调用,但有些在记事本写出来的网页,并能在上面运行的脚本,到了ASP.NET页面上有些脚本就会发生错误,只有把所有脚本代码嵌入页面才可以用,我是这样做的。我引用日历控件就会发生这种问题,解决方法呢,呵,把脚本嵌入页面,要么找微软去问个为什么吧,呵呵 有人说是字符集造成的,呵呵,朋友可以试一下改一下========================================================
    我一定要超过他!!!!!!
    做出我最强的东西!!!!!
    再和他一比高下!!!!!!
    ========================================================
      

  4.   

    应该是参数传递的原因。所调用的函数在JS文件声明中没有参数,但在外部调用时需要传递两个参数,在JS函数中接收这两个参数的语句是:
    var e = window.event.srcElement; 
    WebCalendar.eventSrc = e;
    WebCalendar.objExport = eval(arguments[0]);
    WebCalendar.showBeforeToday = eval(arguments[1]);
    应该是这里出的问题,但是怎么改呢?我对JS还不是很熟悉。希望大家指点!
      

  5.   

    在外部页面里调用的语句是:Calendar(document.Form1.Text1, false)
      

  6.   

    在外部页面里调用的语句是:Calendar(document.Form1.Text1, false)
    ------------------------------------
    那只要在JS文件中定义两个参数接收这两个外部参数的值就行了
      

  7.   

    function calendar() //主调函数
    {
        var e = window.event.srcElement;       
        var o = WebCalendar.calendar.style;
        WebCalendar.eventSrc = e;
        WebCalendar.objExport = eval(arguments[0]);
        WebCalendar.showBeforeToday = eval(arguments[1]);    
        //...    
    }
    请问这个主调函数该怎么改?
      

  8.   

    有的时候不注意把
    JS代码写在runat="server"里面  1楼2楼可能就是这种情况解决办法:
    js里面调用对象的时候加上一个all如:html中是document.[name].value
    js代码如果在runat=“server”里就要写出成document.all.[name].value
      

  9.   

    window.[name].value也要改成document.all.[name].value
      

  10.   

    var e = window.event.srcElement; 
    WebCalendar.eventSrc = e;
    WebCalendar.objExport = eval(arguments[0]);
    WebCalendar.showBeforeToday = eval(arguments[1]);function calendar() //主调函数
    {
        var e = window.event.srcElement;       
        var o = WebCalendar.calendar.style;
        WebCalendar.eventSrc = e;
        WebCalendar.objExport = eval(arguments[0]);
        WebCalendar.showBeforeToday = eval(arguments[1]);    
        //...    
    }
    请问这个主调函数该怎么改?
    ------------------------------------
    function calendar(e,tempWebCalendar) //主调函数
    {
       var this.e = e;
       WebCalendar this.webCalendar = (WebCalendar)tempWebCalendar;
       .........
    }aspx文件中
    var e = window.event.srcElement; 
    WebCalendar.eventSrc = e;
    WebCalendar.objExport = eval(arguments[0]);
    WebCalendar.showBeforeToday = eval(arguments[1]);calendar(e,WebCalendar);如果WebCalendar是在一个JS文件中定义的
    在calendar函数所在JS文件中也要引用WebCalendar的JS文件
    e参数我不太确定怎么接收
    如果这样不行
    试试
    function calendar(e,tempWebCalendar) //主调函数
    {
       Object this.e = e;
       WebCalendar this.webCalendar = (WebCalendar)tempWebCalendar;
       .........
    }