关于js语法的疑惑

qq_33626745 2016-11-03 02:49:16
本人从事java,对js不太熟.

var ws;
var target = "ws://127.0.0.1:8080/WebSocketDemo/echo";

function subOpen(){//建立连接
if (target == '') {
alert('Please select server side connection implementation.');
return;
}

if ('WebSocket' in window) {
ws = new WebSocket(target);
console.info("创建WebSocket对象");

var names="";
for(var name in ws){
names+=name+": "+ws[name]+",\n";
}
alert(names);
} else if ('MozWebSocket' in window) {
ws = new MozWebSocket(target);
console.info("创建MozWebSocket对象");
} else {
alert('WebSocket is not supported by this browser.');
return;
}
}
ws.onmessage=function(event){
var dv = document.getElementById('dv');
dv.innerHTML += event.data;
}


function send(){//发送消息
var msg = document.getElementById('msg').value;
console.info("发送消息:"+msg);
ws.send(msg);//websocket对象的send方法

}

下面这么写就没有问题:

var ws;
var target = "ws://127.0.0.1:8080/WebSocketDemo/echo";

function subOpen(){//建立连接
if (target == '') {
alert('Please select server side connection implementation.');
return;
}
if ('WebSocket' in window) {
ws = new WebSocket(target);
console.info("创建WebSocket对象");

} else if ('MozWebSocket' in window) {
ws = new MozWebSocket(target);
console.info("创建MozWebSocket对象");
} else {
alert('WebSocket is not supported by this browser.');
return;
}
ws.onmessage=function(data){//接收服务器发送的信息
console.info("接收服务端的数据:"+data.data);
};
}
function send(){//发送消息
var msg = document.getElementById('msg').value;
console.info("发送消息:"+msg);
ws.send(msg);//websocket对象的send方法

}
...全文
130 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
scscms太阳光 2016-11-03
  • 打赏
  • 举报
回复
function subOpen(){ ... ws = new WebSocket(target); } ws.onmessage = function(){} //这里就错了,subOpen函数还没有执行,即ws还是nudefined怎么可能有onmenssage方法呢? 下面的例子很明显是在new webSocket后再赋值方法
jio可 2016-11-03
  • 打赏
  • 举报
回复
f12看下控制台就清楚哪里出错了

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧