引用母版页后,母版页的外部css和js文件都还能使用,子页面的外部css也能使用,就是子页面的外部js文件不能使用,
必须放到子页面上才行。请问各位大虾,这个问题怎么解决啊,不然页面上的js太多了

解决方案 »

  1.   

    有可能是js里取不到控件ID,使用了母版页,子页控件ID都会加上前缀,
    一般我们是用<%.ClientID%>,但这个又是c#的语法,在js里是不能使用的
      

  2.   

    ctl00_txtKeyword以前我是人为加上ctl00_,你可以看看你的前缀是多少
      

  3.   

    把所有要用到的服务器控件的客户端ID(ClientID)传到客户端的一个变量里,然后用服务器控件的ID查找,这样应该可以。只是想法,没实践过
      

  4.   


    右键。。源码检查一下JS里用的各控件ID套用模版页ID发生变化。。
      

  5.   

    很简单的在模板页的<head></head>里面加这个控件
    <asp:ContentPlaceHolder ID="head" runat="server">
        </asp:ContentPlaceHolder>
    在body里面加这个控件
    <asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
             </asp:ContentPlaceHolder> 那么引用该模板的的aspx文件就应该是这样的
    <%@ Page Title="" Language="C#" MasterPageFile="~/Layout/Site1.Master" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="Sicent.WxSkper.Main.WebForm1" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server">
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="server">
    </asp:Content>   
    在Content1 里面就是放js文件,或者css文件的了
      

  6.   

    不是获取不到ID,获取ID那个问题我能解决
    服务器端的空间ID都会在原本ID前加上一些值,客户端的不会改变我的意思是子页面引用外部JS文件出现错误,
    不过好像在子页面加上<script type="text/javascript" src="Scripts/jquery-1.4.1.min.js"></script>
    引用之后就没问题了调试了一下,发现运行时先走的子页面,再走的母版页,所有必须要加上JQuery的类库引用 才行不过我昨天也加了,就不行,估计昨天没弄好谢谢大家
      

  7.   

    对,是这样写的,如果Content2里面有服务器端控件的话,所有服务器端控件的ID前会自动加上ContentPlaceHolderID的值,还有一个下划线_
      

  8.   

    将母板中的js引用改成这样试试:
    <script type="text/javascript" src='<%= ResolveUrl("~/Js/jquery-1[1].3.1.js")%>'></script>
      

  9.   

     public string ApplicationPath
        {
            get
            {
                _basePath = this.Request.ApplicationPath;
                if (_basePath.IndexOf("/") >= 0 && _basePath.Length == 1)
                    _basePath = "";
                return _basePath;
            }
        }<script src="<%=ApplicationPath %>/Script/JScript.js" type="text/javascript"></script>
      

  10.   

    对,很有可能就是服务器控件ID改变了,JS调用不到
      

  11.   

    js 不能使用!
    通常有3种问题: 楼主可以自己调试一下
    1、js 路径错误! 母板页和其它页面不在同一目录时,可能会出现此问题。通常css,js 都用相当于网址的根目录(如 “/js/1.js” "/css/1.css") 就可以了!
    2、js 文件编码和html 编码不一致!  导入js 时,设置编码。或者把js 的编码改成一致!3、服务器控件ID改变了,JS调用不到!右键查看源代码(firebug 更好) 就可以看到html 源代码了!