DjangoのChannelsのwebsocketでチャットを作るチュートリアルをやっているのですが、下記コードのScriptタグ内の一行目の
var roomName = "{{ room_name|escapejs }}";
の右の内容が全く分かりません。Djangoのタグで、データを取ってくるときに使うタグで、room_nameという変数は前のチャットルームを選択する画面で送られてくる情報であるということは分かっています。
ただescapejsが何なのか、そこが分かっていません。
ご教授願います。
JavaScript
1<!-- chat/templates/chat/room.html --> 2<!DOCTYPE html> 3<html> 4<head> 5 <meta charset="utf-8"/> 6 <title>Chat Room</title> 7</head> 8<body> 9 <textarea id="chat-log" cols="100" rows="20"></textarea><br/> 10 <input id="chat-message-input" type="text" size="100"/><br/> 11 <input id="chat-message-submit" type="button" value="Send"/> 12</body> 13<script> 14 var roomName = "{{ room_name|escapejs }}"; 15 16 var chatSocket = new WebSocket( 17 'ws://' + window.location.host + 18 '/ws/chat/' + roomName + '/'); 19 20 chatSocket.onmessage = function(e) { 21 var data = JSON.parse(e.data); 22 var message = data['message']; 23 document.querySelector('#chat-log').value += (message + '\n'); 24 }; 25 26 chatSocket.onclose = function(e) { 27 console.error('Chat socket closed unexpectedly'); 28 }; 29 30 document.querySelector('#chat-message-input').focus(); 31 document.querySelector('#chat-message-input').onkeyup = function(e) { 32 if (e.keyCode === 13) { // enter, return 33 document.querySelector('#chat-message-submit').click(); 34 } 35 }; 36 37 document.querySelector('#chat-message-submit').onclick = function(e) { 38 var messageInputDom = document.querySelector('#chat-message-input'); 39 var message = messageInputDom.value; 40 chatSocket.send(JSON.stringify({ 41 'message': message 42 })); 43 44 messageInputDom.value = ''; 45 }; 46</script> 47</html>
回答2件
あなたの回答
tips
プレビュー