我使用nodejs v0.10.12并使用websockets。在服务器端,我有一个类似
的代码//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标签在客户端“工作”,而不仅仅是渲染?
由于
答案 0 :(得分:0)
您是否稍后尝试将该数据插入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>")