Asp.net 2.0站点和<script/>导致问题/冲突的标签

asp.net 2.0 site and location of <script/> tags causing problems/conflicting

本文关键字:问题 冲突 标签 net 站点 script Asp      更新时间:2023-09-26

我不知道如何准确/明智地描述这一点,因为这似乎是完全不可能的,但肯定有一些原因。

我正在尝试利用jquery, jquery-ui, qtip (jquery的工具提示)和highcharts (javascript图表),但为了帖子的目的,我可以很容易地只使用jquery和jquery-ui。

如果我在我的<head/>元素的底部包含我的<script/>标签,我得到一个错误,试图调用。slider()扩展来配置我的滑块。但是如果我把<script/>标签在我的<body/>元素结束之前,那么一切都可以工作。为了说明这一点,下面的代码将不起作用(显然下面有一些伪代码):

  <head>
    <script jquery.js/>
    <script jquery-ui.js/>
  </head>
  <body>
     ... html ...
     <script type="text/javascript">
       $(document).ready(function () {
           $(".slider").slider( { .. options .. } );
       } )
     </script>
     ... more html *including* the .slider elements
  </body>

然而,如果我移动两个jQuery脚本标签,以正确的</body>关闭元素的事情工作。当脚本标签在head元素中并且我调试我的应用程序时,基本上页面似乎已经完全加载,Visual Studio突出显示调用。slider()函数的行,说它不知道slider()是什么。查看调用堆栈,它似乎正确地从文档准备函数调用它…标记也都在那里,让我相信文档真的准备好了。

现在我没有在伪代码中包含asp.net 1.1/2.0站点所需的东西,即带有runat="server "的<form/>元素和使用<asp:ScriptManager/>标记(我们需要利用Microsoft Ajax解析来自不同文化的货币值)。我不敢相信是他们造成了这个问题,但也许他们就是。此外,asp.net注入了几个自己的脚本片段(例如验证、post back等)

关于表单标签…所有的HTML和文档。Ready标记会在表单标签内,而script标签总是在表单标签外(要么在它上面,要么在头部,要么在正文底部)。

显然,我可以把脚本标签留在底部,我很好可能最终这样做,但我试图得到一个干净的"模板网站",在创建新的客户端网站时使用,它只是感觉错误,我有一个限制,迫使我把这些标签在html的底部。我确信我们的框架代码(或者可能是asp.net的)只是插入一些导致jQuery问题/冲突的东西,但我真的不知道如何去调试/诊断问题是什么。所以如果有人有任何建议,我将非常感谢。

看起来jQuery 1.3.2正在被ASP加载。. NET(参见第二个WebResource.axd)。两个库版本正在相互覆盖。因此,当您在页面末尾加载1.6.2时,它可以工作。

相关文章: