I would assume it is because they are not aware of "encodeURIComponent()" and are using "escape()" instead.
This probably fixes it*:
if (window.XMLHttpRequest) { req = new XMLHttpRequest(); req.onreadystatechange = processReqChange; req.open("POST", "postpreview.asp", true); req.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); req.send("msg=" + encodeURIComponent(document.PostTopic.message.value)); // branch for IE/Windows ActiveX version } else if (window.ActiveXObject) { isIE = true; req = new ActiveXObject("Microsoft.XMLHTTP"); if (req) { req.onreadystatechange = processReqChange; req.open("POST", "postpreview.asp", true); req.setRequestHeader('Content-Type','application/x-www-form-urlencoded'); req.send("msg=" + encodeURIComponent(document.PostTopic.message.value)); } }
* I just searched for "escape" in the source, I didn't actually try to follow what was going on.
I think 5.5 was the first IE version it showed up in. One could always do:
if (!encodeURIComponent) encodeURIComponent = escape;
if they really wanted to "support" people who live in the dark ages...