【问题标题】:Load JS file in Master Page (ASP.NET, VB.NET)在母版页中加载 JS 文件(ASP.NET、VB.NET)
【发布时间】:2018-08-10 21:13:42
【问题描述】:

更新

我摆脱了错误,但 JS 仍然无法正常工作。

在 MasterPage 头部分我有这个:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="/js/script.js"></script>
<script src="/js/jquery.sticky.js"></script>
<script>
    $(document).ready(function(){
    $("#container_menu").sticky({ topSpacing: 0 });
    });
</script>

在浏览器中检查页面时,我收到以下警告和错误:

jquery.min.js:2 jQuery.Deferred 异常:无法读取属性“左” 未定义的类型错误:无法读取未定义的属性“左侧” 在 HTML 文档。 (http://localhost:64093/js/script.js:2:31) 在 l (http://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:29375) 在 c (http://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:29677) 未定义 w.Deferred.exceptionHook @ jquery.min.js:2 jquery.min.js:2 jQuery.Deferred 异常:$(...).sticky 不是函数 TypeError: $(...).sticky 不是函数 在 HTML 文档。 (http://localhost:64093/:17:30) 在 l (http://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:29375) 在 c (http://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js:2:29677) 未定义 w.Deferred.exceptionHook @ jquery.min.js:2 jquery.min.js:2 未捕获的类型错误:无法读取未定义的属性“左侧” 在 HTML 文档。 (script.js:2) 在 l (jquery.min.js:2) 在 c (jquery.min.js:2) jquery.min.js:2 Uncaught TypeError: $(...).sticky is not a function 在 HTML 文档。 ((指数):17) 在 l (jquery.min.js:2)

原帖

*我正在尝试从母版页头部的 /js/file.js 链接一个 js 文件。我尝试了我在互联网上找到的所有东西,但没有运气。不知道我做错了什么。

<script type="text/javascript" 
src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"/>
<script type="text/javascript" src="~/js/jquery.sticky.js" />

我得到的错误与我认为的 JS 代码有关。这是我得到的:

 BC30035: Syntax error.
          Line 1:  (function (factory) {
          Line 2:      if (typeof define === 'function' && define.amd) {
          Line 3:          // AMD. Register as an anonymous module.

【问题讨论】:

  • 你不应该在里面有runat="server"
  • 尝试在没有 type="" 的情况下加载 -> 也许你可以发布一些关于错误的信息。也许使用更新的 jquery 版本:ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js
  • 你的树在哪里是你的母版页,js文件在哪里?路径可能有问题
  • 尝试将 添加到您的头部
  • 在您的浏览器中,打开开发者工具 (F12) 并找到网络选项卡。如果有任何显示,请清除它。在浏览器窗口中,刷新页面 (F5)。返回到网络选项卡并查找它加载 jquery.sticky.js 的位置 - 如果它的 HTTP 响应代码为 200 或 304 则它已加载到浏览器中,否则您需要找出它未传递到的原因浏览器。

标签: javascript


【解决方案1】:

这里有个技巧:打开母版页和解决方案资源管理器。将 .js 文件从解决方案资源管理器拖到母版页的头部,然后重试。

【讨论】:

  • 听起来你需要在这个 Ryan 上发布一个单独的问题。但是你可以检查一件事:这个 JS 文件中的代码可能没有考虑到母版页添加到每个页面的“表单”。那么也许需要调整该 js 文件中的 jQuery 选择器?祝你好运:)
  • 谢谢伙计。那我再问一个问题。
  • @RyanP。如果您还没有发现它,您可以在(大多数)浏览器中按 F12 以获取“开发者工具”。会有一个显示错误的控制台和一个网络窗格,可以让您查看 JS 文件是否实际加载。
  • @AndrewMorton,这是我的问题。我可以在浏览器的页面源中看到
猜你喜欢
  • 1970-01-01
  • 2015-08-13
  • 1970-01-01
  • 2011-02-12
  • 1970-01-01
  • 1970-01-01
  • 2012-04-11
  • 2015-06-19
  • 1970-01-01
相关资源
最近更新 更多