IE浏览器下innerHTML自动标签大写的问题

最近做了一个从网页上发短信的功能,但是在IE和FF/Chrome下执行的结果却截然不同:

在FF/Chrome下程序一直很正常,但是IE下却从来没成功过。移动方面的工程师反馈说是因为提交权鉴的内容与确认发送的内容不符导致的。于是用wireshark抓包看了下,果然,提交的短信内容是包含html标签的,但是FF/Chrome提交的内容中html标签是小写,而IE提交的内容第一次是小写,第二次变成了大写!

于是打开页面里的js代码看了看,流程是这样的:

从页面的隐藏域A、B、C中获取值后,进行一定规则的拼接,生成短信内容,通过ajax提交给server权鉴。通过权鉴后,将拼接的内容存入了某元素的innerHTML进行展现,并由用户确认后发送。发送时则先从innerHTML中取得短信内容,再提交给server。
看来问题就出在innerHTML了。于是写了一段小程序试了下,在IE中先把一个”<em>Hello</em>”放入span的innerHTML,再取出来,发现取出来就变成了”<EM>Hello</EM>”。找到问题的原因就好办了,只要保证两次提交给server的内容一致即可,稍微改了下页面上js的流程,两次请求发送的内容均从innerHTML取得,问题就解决了。

加载评论框需要翻墙