How can I in Javascript read strings from a textfile and display them in an alert box with newlines?
Suppose I have an ASCII textfile "messages.txt" containing two lines:
AAA\nBBB\nCCC
DDD\nEEE\nFFF
In javascript, I read the file content and store it in a variable "m":
var m;
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function ()
{ if ((xmlhttp.readyState==4) && (xmlhttp.status==200 || xmlhttp.status==0))
{ m = xmlhttp.responseText.split('\n'); };
};
xmlhttp.open("GET", "messages.txt", false);
xmlhttp.send(null);
Now when I display the first message with
console.log(m[0]);
alert(m[0]);
it is shown exactly as in the textfile and with no line breaks; i.e
AAA\nBBB\nCCC
and not as
AAA
BBB
CCC
Changing \n to \\n, \r\n, \\r\\n or %0D%0A in the textfile doesn't help; the alert is still displayed as one line including the escape characters without replacing them by newline. Changing the encoding of "messages.txt" from ASCII to UTF-8 didn't help either.
To clarify the problem: When m is read from the file "message.txt", it is split into an array of strings. m[0] equal to "AAA\nBBB\nCCC".
console.log(m[0]); // displays AAA\nBBB\nCCC
console.log('AAA\nBBB\nCCC'); // displays AAA
// BBB
// CCC
console.log(typeof(m[0]) // displays string
console.log(m[0]=="AAA\nBBB\nCCC"); // displays false
Why is m[0] not equal to "AAA\nBBB\nCCC" (even if exactly this is what is displayed in the console)? I guess, that is the reason why no line breaks appear.