我用javascript写了一个类,然后<script language=javascript src="XXX.js" ></script>放到文件的头部。动态页面里没有任何动态的代码的,只是在script里调用这个对象。结果不成功。但如果把页面改成html或者asp都成功。
以前也遇到过类似的问题,写了一个函数,传递的参数是个对象,结果把他单独写成js文件就不可以,写在页面里面就可以,奇怪,想不通。

解决方案 »

  1.   

    没碰到过,换个方式试试:
    Page.RegisterClientScriptBlock("openCal","<script language='javascript' src='XXX.js></script>");
      

  2.   

    我知道原因,因为asp和htm里没有定义Response编码方式,所以自动选择了.aspx的编码方式已经在Web.config文件中定义成默认utf8了,你改成gb2312一般就解决了.因为你单独的js文件可能是其他地方复制过来的,不是utf8的编码,(假设是gb2312)而且带了中文(比如注释).就有可能出这个错误.你可以尝试把中文删除或修改Web.config这2种方法中的任何一种.
    为什么直接写在aspx页面上又可以了呢???因为你加入到aspx页面上时,编辑器其实已经给你转成web.config中定义的utf8编码了.
      

  3.   

    asp.net和html,asp当然不一样了。
    特别是js,不能按html时哪样写了。
    比如:this.Button1.Attributes.add("onclick","js");
    而不能this.Button1.onclick="js"
      

  4.   

    果然是编码问题。但把js存成utf8好像没有效果。而且如果万一2个js文件不同编码,那怎么办