js使用.net变量 var myValue ="<% =myVal%>";
js原本是直接写在aspx页中的,后来看着太长,就拿出来另存一个js文件,并在aspx页中引用这个文件。
结果,js不再认识<% %>的内容了。。就是说js直接写在页面中,和另存成js文件再引用其实是不同的对吧?

解决方案 »

  1.   

    外部js文件是脱离开发页面实现的工具函数
    function test(obj)
    {
      window.onload=function(){alert(obj.value);}
    }
    ScriptManager.RegisterClientScriptInclude(this.Page,this.GetType(),"",
      this.Page.ResolveUrl("~/js/A.js"));
      

  2.   

    不一样。<%= %>必须在aspx文件中,发送到浏览器之前会被asp.net替换成具体的值。如果在js文件中则不会被asp.net处理。js中出现<%=%>是一个不好的习惯,规范的写法是将其做成方法的形参,后台动态输出调用这个方法的js语句。或者直接在后台赋值。
    可以在页面中放一个Literal控件,后台用Literal1.Text="<script>abc('myVal的值')</script>";
    myValue的值做为js方法abc的参数,给定的实参不同执行结果也不同。这样比较好。
      

  3.   

    js文件不是aspx。当然不能使用变量了。变量必须在aspx里写
      

  4.   

    你也可以这样写
    <script src="xx.aspx"></script>
    这样动态生成js