0

私は 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>');

connection.sendfrom サーバーに含まれるデータを websocket 経由でクライアントに送信したい。問題は、クライアント上で、html タグもレンダリングされ、ブラウザー上でレンダリングされることです。

<b>Name</b></br>testpoint5</br></br><b>Description</b></br><textarearows="20"cols="60">testpoint5</textarea>

「websocketsを介したhtmlタグ」などを検索しましたが、何も役に立ちません...

助言がありますか?レンダリングするだけでなく、クライアントでhtmlタグを「機能させる」方法は?

ありがとう

4

1 に答える 1

0

後でそのデータを DOM に挿入しようとしていますか?

その場合、タグをエスケープする必要があります。私が意味するのは、<なるべき&lt;であり、なる>べきであるということです&gt;

エスケープする必要がある他のキャラクターもいます。Google で「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;")
于 2013-07-18T17:32:58.583 に答える