asp.net - ASP.NET 中的 JQuery 与母版页

标签 asp.net jquery master-pages

我正在尝试将 JQuery 与一些使用母版页的 asp.net 页面一起使用,但在加载 JQuery javascript 文件时遇到问题。

当我将该文件包含在母版页的标记中时,它在与母版页位于同一目录中的页面上运行良好:

<script src="jquery/jquery-1.4.2.min.js" type="text/javascript"></script>

但是对于与母版页不在同一目录中的页面,这种情况会中断。母版页继承包含它们的页面的路径,因此对于不同的页面,jquery .js 文件的相对路径是不同的。当然,我不能在主文件中有不同的相对路径,因为只有其中之一。

我可以使用绝对路径:

<script src="/jquery/jquery-1.4.2.min.js" type="text/javascript"></script>

但是如果网站安装为虚拟目录,就会中断。

我的下一个尝试是使用“~”来表示网站的根目录:

<script src="~/jquery/jquery-1.4.2.min.js" type="text/javascript"></script>

但是脚本标签不理解~”​​。

所以我尝试在代码隐藏中做到这一点。从 OnInit() 中,我尝试过:

string url = "~/jquery/jquery-1.4.2.min.js";
url = this.ResolveUrl(url);
Page.ClientScript.RegisterClientScriptInclude("jquery_js", url);

当 JQuery javascript 运行时,这会给我带来错误。我在页面的标记中有一些 javascript:

$(document).ready(function()
{
    ...
}

我得到“$”未定义。我在 jquery-1.4.2.min.js 的开头添加了一个警报,它加载正常,但在 .aspx 文件中的这段 javascript 执行之后。

我尝试了 ScriptManager.RegisterClientScriptInclude(),但得到了相同的结果。

最佳答案

您可以使用:

<script type="text/javascript" src="<%= ResolveUrl("~/jquery/jquery-1.4.2.min.js")%>"></script>

或者可能构建一个控件,本质上为您进行重新映射:

<my:Script src="~/jquery/jquery-1.4.2.min.js" />

甚至可以将其注册到 ClientScriptManager,但最好将其放在页面中。

关于asp.net - ASP.NET 中的 JQuery 与母版页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4330380/

相关文章:

asp.net - ASP.NET 中的 Session.Clear() 和 Session.Abandon() 后 session 变量未清除

c# - “InitializeCulture”不是ASP的成员+间接引用了程序集

javascript - 用 BR 标签替换 SPAN 标签内的空格

javascript - 在 div 中的特定 <a> 上应用 CSS

jquery - 简单的 jQuery 在 HTML 中工作,而不是在 ASP.NET 中工作

c# - 如何为不同角色使用通用母版页?

c# - SQLite.Interop unable to delete file on clean of 解决方法

c# - 通过查询字符串传递 Int 类型值

javascript - JS Slide 切换侧边栏并展开内容 div

css - 以访客身份登录时,Sharepoint 母版页会有所不同吗?