2013-02-06 249 views
2

我有一个用于创建聊天的已用过的SignalR。它完美的作品,但是当我在母版页使用它 它提供了以下错误未捕获TypeError:无法读取未定义的属性'聊天'

Uncaught TypeError: Cannot read property 'chat' of undefined 
(anonymous function) 
fire 
self.fireWith 
jQuery.extend.ready 
DOMContentLoaded 

的错误在于在:

<script type="text/javascript"> 
    $(function() { 
     var chat = $.connection.chat; 
**Uncaught TypeError: Cannot read property 'chat' of undefined** 

     $.connection.hub.start({ transport: 'auto' }, function() { 
     //alert('connected'); 
     $('#MainContent_connected').text('Connected to chat room'); 
     }); 

     $("#broadcast").click(function() { 
     chat.send($("#MainContent_userName").text() + $("#msg").val()); 
     $("#msg").val('') 
     }); 

     /* Declaring the Function on the chat hub in order for the server to 
     be able to invoke it. */ 
     chat.addMessage = function (message) { 
     $('#messages').append('<li>' + message + '</li>'); 
     }; 
    }); 
    </script> 

关于如何解决此问题的任何想法?

+0

你有包含的jQuery两次? – davidfowl

+0

起初我没有。我只有在Master Page上,我得到了3个其他错误,但是当我在文件夹中的页面上包含src后,这是唯一的错误 – Niaris

+1

当jQuery包含两次时,这个错误是100%。这就是说$ .connection本身是未定义的。这意味着SignalR的jQuery插件甚至没有正确加载。 如果你得到这个错误,那么你有jQuery包含两次。 – davidfowl

回答

0

确保你包括脚本标签:<script src="signalr/hubs"></script>

这个动态代理(“signalr /中心”)是什么构成了.chat财产关闭的$■连接

+0

感谢您的回答!我已经使用了两个:'<%= ResolveClientUrl(“〜/ signalr/hubs”)%>'和src =“signalr/hubs”>但仍然没有任何结果。它似乎在Web应用程序的公共页面上工作,但不在“管理”页面上工作 – Niaris

+0

管理页面是否在不同的域上? –

+0

他们只是有不同的访问规则,他们躺在不同的文件夹(我相信这是问题),但最后我刚创建了一个chat.aspx,在引用聊天的母版页上添加了iframe,并以某种方式找到了解决方案就此而言 – Niaris

相关问题