テキストエリアに改行して文字を入力して
改行された状態で違う箇所へ表示させたいのですが、
改行処理がうまくいかずに
まったく表示できない状況です。
このメッセージをMySQLへ保存しており、
リロードして表示させると
あ
い
う
という上記の文字は
あ い う
という具合にスペース認識として表示されてしまいます。
正規化の仕方がおかしいのかと思いますが、
エラーの箇所が
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
であり、
Uncaught SyntaxError: Unexpected token
といったエラー内容になっているので、
単純に文法のエラーとも考えています。
下記にJavaScriptを記載いたしますので、
ご教授いただけると幸いです。
javascript
1<script type="text/javascript"> 2var webSocket; 3window.onload = function() { 4 var forRtoA = document.createElement('a'); 5 forRtoA.href = "loadMessage"; 6 webSocket = new WebSocket(forRtoA.href.replace("http://", "ws://").replace("https://", "wss://")); 7 var messageArea = document.getElementById("message-list"); 8 var sessionid = document.getElementById("sessionID").value; 9 var photo = document.getElementById("yourphoto").value; 10 11 var appendMessage = function(value, session) { 12 var string = value.replace("/[\r\n|\n|\r]/g", "<br>"); 13 var messageElement = document.createElement("messageArea"); 14 var time = new Date(); 15 var month = time.getMonth() + 1; 16 if(month < 10) { month = "0" + month; } 17 var day = time.getDate(); 18 if(day < 10) { day = "0" + day; } 19 var hour = time.getHours(); 20 if(hour < 10) { hour = "0" + hour; } 21 var minute = time.getMinutes(); 22 if(minute < 10) { minute = "0" + minute; } 23 var now = month + "/" + day + " " + hour + ":" + minute; 24 if(session == sessionid){ 25 messageElement.innerHTML = '<li class="msg_send"><div class="inner-box"><p class="balloon_right" id="messageArea">' + string + '</p></div></li><p class="time_send">' + now + '</p>'; 26 }else{ 27 messageElement.innerHTML = '<li class="msg_recieve"><a href="" target="_blank"><img src="' + photo + '" alt="メッセージ相手写真" class="c-message_photo img-circle c-photo_mini"></a><div class="inner-box2"><p class="balloon_left">' + string + '</p></div></li><p class="time_recieve">' + now + '</p>'; 28 } 29 messageArea.appendChild(messageElement); 30 var message_box = document.getElementById("message_box"); 31 message_box.scrollTop = message_box.scrollHeight; 32 } 33 34 webSocket.onmessage = function(message) { 35 var data = JSON.parse(message.data); 36 appendMessage(data.text, data.sessionid); 37 } 38 39 var messageInput = document.getElementById("c-btn_chenge"); 40 var messageText = document.getElementById("messageInput"); 41 messageInput.onclick = function() { 42 var message = messageText.value; 43 if (webSocket && "" != message) { 44 webSocket.send(message); 45 messageText.value = ""; 46 } 47 } 48} 49</script>
何度も同じ質問をしてしまい申し訳ありませんが
よろしくお願いいたします。
追記
メッセージのサーバー側の処理を記載いたします。
java
1@OnMessage 2 public void onMessage(String message , Session sessionID) throws IOException, ServletException { 3 // クライアントからの受信時 4 for (Session session : sessions) { 5 session.getBasicRemote().sendText("{\"command\":\"message\", \"text\": \"" + message.replace("\\", "\\\\").replace("\"", "\\\"") + "\" , \"sessionid\": \"" + sessionid + "\"}"); 6 MessageDao messagedao = new MessageDao(); 7 try{ 8 messagedao.connect(); 9 int userid = messagedao.selectSessionID(sessionid).getUserid(); 10 int roomid = messagedao.selectSessionID(sessionid).getRoomid(); 11 messagedao.insertMessage(userid, roomid, message); 12 messagedao.close(); 13 }catch(Exception e){ 14 e.printStackTrace(); 15 } 16 } 17 }