我在一个aspx文件中包含的js文件中写了<% xxx %>这种代码,可是页面输出时没有编译出来
当我在aspx的<head></head>中直接加入<script><% xxx  %></script>,就可以编译,请问是什么原因,能直接写在js中吗, 因为js文件比较大,而且有很多页面引用,在此先谢谢各位了

解决方案 »

  1.   

    在js文件中的<% %>是不能运行的,你可以写在.aspx中赋值给js,如
    jsobj.param = <% %>
      

  2.   

    不可以写在 js 中 ,因为不会用ISAPI编译
      

  3.   

    我现在的逻辑是要根据用户权限动态的输出一段脚本,这段脚本在一个js文件中,很多文件都引用这个js的,有没有更好的方法了?
      

  4.   

     HtmlGenericControl accordionGenericControl;                    accordionGenericControl = new HtmlGenericControl("LINK");                    accordionGenericControl.ID = "AccordionGenericControl" + i.ToString();
                        accordionGenericControl.Attributes["rel"] = "stylesheet";
                        accordionGenericControl.Attributes["type"] = "text/css";
                        accordionGenericControl.Attributes["href"] = Page.ResolveClientUrl(_hrefArray[i]);                    ContainerControl.Controls.Add(accordionGenericControl);
                    可以使用这种方式
      

  5.   

    算了,我把js文件又复制了一份,把那些要动态输出的地方去掉,然后在aspx文件引入js的地方加上判断
    <script src="<%if(...){%>aaa.js<%}else{%>bbb.js<%}>" ></script>
      

  6.   

    你是在Debug的时候没有输出吗?
      

  7.   


    我现在的逻辑是要根据用户权限动态的输出一段脚本,这段脚本在一个js文件中,很多文件都引用这个js的,有没有更好的方法了?你看过一些统计的js,或者是在线客服的js,就明白原理了!<script src="XXXX/XXX.aspx?uid=00001" ></script> 
    都是这样的动态js.服务器端根据 参数 获取不同的逻辑处理方式,生成不同的js!
    其实就是 response.write(....); response.End();这样就可以了以下是cnzz 统计的一个公司的js! web_id 编号不同,返回的js 也有所不同
     你用浏览器直接访问,就可以看到它返回的js!
    对浏览器和静态js 完全一样!
    <script src="http://s14.cnzz.com/stat.php?id=2250782&web_id=2250782&show=pic1" language="JavaScript"></script> 
      

  8.   

    估计楼主写的代码不太规范才会这样。设计方法或函数时要注意,将运行时不确定的部分做成方法的形参,在调用时给出不同的实参获得不同的执行结果。这才是符合方法设计原则的做法。比如
    在页面上拖一个Literal控件,后台对其Text属性赋值:Literal1.Text="<script>abc("+实参值+")<script>";其中的实参值是后台给出的,所以可以动态控制js。