ASP.NET主页上的Javascript未在子目录中的内容页面上运行

时间:2014-03-28 13:15:41

标签: javascript jquery asp.net

我在Master页面上有一些jQuery事件,需要在所有内容页面上运行。如果内容页面与母版页位于同一目录中,则可以正常工作。但是,如果内容页面位于子目录中,则页面加载正常,但jQuery不会运行。

jQuery并不多,只是在<script></script>标签之间。如果可能的话,我希望保持这种方式,而不是使用ASP ScriptManager

1 个答案:

答案 0 :(得分:1)

您的脚本本身可能很好,但由于不正确的相对路径,您的jQuery引用会搞乱。您应该能够使用浏览器的调试工具进行验证,发现无法加载jQuery的位置。

<script type="text/javascript" src='<%=ResolveUrl("~/path/jquery.js") %>'></script>

使用上面的代码,我们从服务器端获得正确的站点相对路径。然后,无论你在什么文件夹中,对jQuery的引用都应该是正确的。

当母版页与内容页面结合使用时,如果您对脚本的路径进行硬编码,则不会更新脚本的路径。因此,如果您与母版页位于同一文件夹中,则脚本的路径是正确的。但是,如果您处于文件夹结构的不同级别,则路径将变得不正确。这就是我们从服务器端使用ResolveUrl()的原因,无论我们在哪个文件夹,它都能够在客户端提供正确的路径。