【问题标题】:Masterpage js/code not working in subfolders母版页 js/代码在子文件夹中不起作用
【发布时间】:2014-07-14 14:44:07
【问题描述】:

我在主 HTML 中有一个对话框,我将它隐藏并基于一个按钮显示它,该按钮也在主 HTML 中。一切都在根页面中很好地隐藏/显示,但在子文件夹中的页面上却没有。当这些显示时,对话框 HTML 代码永远不会隐藏,并且按钮单击不会执行任何操作。 我的母版页中的脚本是这样的:

<script type="text/javascript">
    $(document).ready(function () {
        $('#Id_GL').click(function () {
            $('#div_GL').show();
            $('#div_AP').hide();
            $('#div_AR').hide();
        });           
    });
    </script>

有没有办法让我的母版页与子文件夹页面一起工作? 我像这样在母版页中调用 javascript

 <script src="js/jquery/jquery.min.js"></script>
<script src="js/jquery/jquery.widget.min.js"></script>
<script src="js/jquery/jquery.mousewheel.js"></script>
<script src="js/prettify/prettify.js"></script>

<!-- Metro UI CSS JavaScript plugins -->
<script src="js/load-metro.js"></script>

<!-- Local JavaScript -->
<script src="js/docs.js"></script>
<script src="js/github.info.js"></script>

【问题讨论】:

  • 发布您的 javascript 包括。这似乎是 javascript 包含的错误路径(我猜是 jquery 包含)

标签: javascript asp.net master-pages


【解决方案1】:

那些 JavaScript 包含指的是相对路径。当您在子文件夹中时,相对路径会导致一个不存在的文件。 您需要使用解析路径。您可以使用~/ResolveUrl("~") 来做到这一点。

使用您的包含可能是这样的:

<script src="<%= ResolveUrl("~") %>js/jquery/jquery.min.js"></script>
<script src="<%= ResolveUrl("~") %>js/jquery/jquery.widget.min.js"></script>
<script src="<%= ResolveUrl("~") %>js/jquery/jquery.mousewheel.js"></script>
<script src="<%= ResolveUrl("~") %>js/prettify/prettify.js"></script>

<!-- Metro UI CSS JavaScript plugins -->
<script src="~/js/load-metro.js"></script>

<!-- Local JavaScript -->
<script src="~/js/docs.js"></script>
<script src="~/js/github.info.js"></script>

我将这两种方法混合使用,以便您看到区别。

【讨论】:

    【解决方案2】:

    我在使用过的每个版本的 VS 中都遇到过这个问题。我获得要解析的脚本或 CSS 路径的唯一方法是将它们从解决方案资源管理器拖到母版页的代码视图中。尝试用“~”解决它也没有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-11
      • 2013-11-30
      • 2010-11-25
      • 2020-10-17
      • 2014-03-19
      • 1970-01-01
      相关资源
      最近更新 更多