0

这是我的 HTML 开头:

<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript" src="/Scripts/jquery-1.8.2.min.js"></script>
    <script src="/Scripts/jquery.signalR-0.5.3.js" type="text/javascript"></script>
    <script src="/Scripts/MyScript.js" type="text/javascript"></script>

    <title>Some title</title>
</head>

我之前尝试添加</head>

<script type="text/javascript" src="/signalr/hubs"></script>

但这无济于事。

我还尝试删除除脚本之外jQuery的所有内容。signalR

请注意:所有脚本,包括jquery.signalR-0.5.3.js(以及hubs,如果我添加它)都已成功加载(我可以使用 Chrome“开发者工具”单步执行)。

那么为什么我没有$.connection定义对象呢?

编辑:

我清理了所有不必要的代码,同时发现:

  1. $.connection我在时确实存在MyScript.js,但我尝试先使用 chrome 控制台对其进行测试。在控制台中它不存在......我不明白为什么。
  2. $.connection为了测试它,我暂时保存在someGlobalObj

    someGlobalObj = $.connection;
    

    那行得通……

所以我更新的问题是:如何$.connection在我的脚本中可见,但在 chrome 控制台中不可见($或者jQuery是全局变量)?

4

1 回答 1

1

为什么 $.connection 在我的脚本中可见,但在 chrome 控制台中不可见($ 或 jQuery 是全局变量)?

只有两种解释:在你的脚本之后执行的东西(超时,其他一些脚本)......</p>

  • …删除connectionjQuery 对象的属性
  • …用不具有该属性的类似对象覆盖全局$(甚至?)变量。jQueryconnection

如果您还使用其他库(如 Prototype),则可能是第二种情况。

于 2012-10-25T15:29:18.243 回答