不用webockets将html渲染到客户端

时间:2013-07-18 17:25:31

标签: node.js websocket

我使用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标签在客户端“工作”,而不仅仅是渲染?

由于

1 个答案:

答案 0 :(得分:0)

您是否稍后尝试将该数据插入DOM?

在这种情况下,您需要转义标记。我的意思是<应成为&lt;>应成为&gt;

还有其他角色需要逃脱。在谷歌上查找“逃避html实体”。

你应该在服务器端这样做:

connection.send("&lt;b&gt;Name&lt;/b&gt;&lt;/br&gt;"+result.rows[i].p_name+"&lt;/br&gt;&lt;/br&gt;&lt;b&gt;Description&lt;/b&gt;&lt;/br&gt;&lt;textarearows="20"cols="60"&gt;"+result.rows[i].p_descr+"&lt;/textarea&gt;")