asp.net引用母版页后,子页面引用外部JS文件问题
引用母版页后,母版页的外部css和js文件都还能使用,子页面的外部css也能使用,就是子页面的外部js文件不能使用,
必须放到子页面上才行。
请问各位大虾,这个问题怎么解决啊,不然页面上的js太多了
[解决办法]
有可能是js里取不到控件ID,使用了母版页,子页控件ID都会加上前缀,
一般我们是用<%.ClientID%>,但这个又是c#的语法,在js里是不能使用的
[解决办法]
首先母版页也就是个模型啊!你可以把所有的JS放到一个文件里面!然后引用文件!
[解决办法]
把母版页和其它子页面放在同一层目录下,不然只有在子页面里面重新引用了
[解决办法]
你放到子页面是用js文件还是直接写在页面上的,如果直接写在页面上就不会出差
[解决办法]
ctl00_txtKeyword以前我是人为加上ctl00_,你可以看看你的前缀是多少
[解决办法]
把所有要用到的服务器控件的客户端ID(ClientID)传到客户端的一个变量里,然后用服务器控件的ID查找,这样应该可以。只是想法,没实践过。。。
[解决办法]
右键。。源码。。。
检查一下JS里用的各控件ID。。。
套用模版页ID发生变化。。
[解决办法]
很简单的在模板页的<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>
[解决办法]
将母板中的js引用改成这样试试:
<script type="text/javascript" src='<%= ResolveUrl("~/Js/jquery-1[1].3.1.js")%>'></script>
[解决办法]
public string ApplicationPath { get { _basePath = this.Request.ApplicationPath; if (_basePath.IndexOf("/") >= 0 && _basePath.Length == 1) _basePath = ""; return _basePath; } }
[解决办法]
对,很有可能就是服务器控件ID改变了,JS调用不到
[解决办法]
js 不能使用!
通常有3种问题: 楼主可以自己调试一下
1、js 路径错误! 母板页和其它页面不在同一目录时,可能会出现此问题。通常css,js 都用相当于网址的根目录(如 “/js/1.js” "/css/1.css") 就可以了!
2、js 文件编码和html 编码不一致! 导入js 时,设置编码。或者把js 的编码改成一致!
3、服务器控件ID改变了,JS调用不到!
右键查看源代码(firebug 更好) 就可以看到html 源代码了!