0
我使用websockets以及javascript和html5当分配给全局变量时,websocket不起作用
我有以下代码。
<input type="text" onFocus=" so = new websocket('ws://localhost:1234');" onBlur="so.close();" onKeyUp="keyup();" >
<script type='text/javascript'>
var so; //this is global...
//wait a little (user stops typing)
function keyup(){
if (timeout) {clearTimeout(timeout);}
timeout = setTimeout(lookup, 250);
}
function lookup(){
//it's global, so use it right away
so.onopen = function(){
//send data to server to get responce...
因此,websockets打开/关闭,如果用户点击/或不是文本框。用户在文本框上键入内容。将textfield的值发送给服务器,执行查询,如果有匹配的结果,它们将呈现在用户的屏幕上。
如果我点击我在控制台“连接”中看到的文本字段,并且如果单击其他任何其他地方,我会看到“正常关闭”,因为我应该这样做。没关系。
但是,当我输入letteres到文本字段时,要发送数据到服务器,没有发送任何内容。我在控制台中看不到任何东西。我没有看到任何错误。
我错过了什么?这就像so.onopen
永远不会被执行。
有什么建议吗?
在此先感谢
谢谢,但,在'onopen'必须是在另一个函数,我不能改变结构我的代码。奇怪的是,即使我只是把'var so = new WebSocket(“ws:// localhost:8000”);'放在javascript的开头,然后在函数中放入'so.ononpen',仍然没有执行。我没有明白... – slevin
没有什么奇怪的。您绑定在不同的套接字上,因为您不确保指令的顺序。你*有*来改变你的代码的结构。顺便说一下,请注意,如何通过删除内联JavaScript来灌输一些理智。 –
我刚刚编辑我的问题。对不起。希望你能更好地理解我的问题。我没有'field.onfocus = function(){function_keyup(){...'我得到'keyup函数没有定义'错误。 – slevin