我使用nodejs v0.10.12并使用websocket。在服务器端,我有一个类似的代码
//the http server
var server = http.createServer(function(request, response) {
console.log((new Date()) + ' Received request for ' + request.url);
response.writeHead(200, {'Content-Type': 'text/html'});
response.end(clientHtml);
});
server.listen(8000, function() {
console.log((new Date()) + ' Server is listening on port 8000');
})
//the websockets server
var wsServer = new WebSocketServer({
httpServer: server,
autoAcceptConnections: false
});
//connections, getting data from client , etc, etc
//try to send data to client
connection.send('<b>Name</b></br>'+
result.row[i].p_name+
'</br></br><b>Description</b></br><textarea rows="20" cols="60">'
+result.rows[i].p_descr+
'</textarea>');
我想通过websockets将connection.send
中包含的数据从服务器发送到客户端。问题是,在客户端上,html标签也会渲染,在浏览器上我会得到
<b>Name</b></br>testpoint5</br></br><b>Description</b></br><textarearows="20"cols="60">testpoint5</textarea>
我搜索了"通过websockets的html标签"之类的,但没有用。。。
有什么建议吗?如何使html标签在客户端上"工作",而不仅仅是渲染?
感谢
您稍后是否尝试将该数据插入DOM?
在这种情况下,你需要逃离你的标签。我的意思是<
应该变成<
,>
应该变成>
你还需要逃离其他角色。在谷歌上查找"转义html实体"。
你应该在服务器端这样做:
connection.send("<b>Name</b></br>"+result.rows[i].p_name+"</br></br><b>Description</b></br><textarearows="20"cols="60">"+result.rows[i].p_descr+"</textarea>")