Press "Enter" to skip to content

IE下pre标签的InnerHTML问题

今天在升级我自己的语法高亮显示插件的时候, 发现在IE下, 都缺少了最后一行的显示, 如果pre中只有一行语句的时候, 就什么都不显示..

追踪了半天(IE下我只用Alert,,,), 最后发现, 如下语句在IE上运行的结果, 比在FF/Chrome中少1.

    var codes = document.getElementsByTagName("pre");
    alert(codes[0].length); //IE下如果是10, 那么在FF/Chrome中就是11

因为我的语法高亮插件, 是通过对最后一个字符是否为\n ,或者 \r来判断新行开始, 旧行结束的, 所以导致在IE下, 最后一行的内容永远不会显示..

原来, IE对所有要显示的data都做了text normalization, 即使是pre或者textarea这种应该保持原状的标签, 应该是这个原因, 导致在显示pre内容的时候, 行尾的回合换行被抹掉了.

有这个问题的IE包括: Explorer 6, 7, 8 (已验证)

11 Comments

  1. run3
    run3 2019-08-05

    your post really nice

  2. wings.io
    wings.io 2019-06-22

    This topic is very interesting and I am interested but do not know where to find, thankfully you create this topic, hope everyone will help me

  3. Run 3 game
    Run 3 game 2019-05-22

    Thanks for letting us know about this plugging in. Worth sharing and going through post.

  4. assignment代寫
    assignment代寫 2019-02-26

    首先,您需要了解这种语言的基础知识。毫无疑问,它易于使用,但仍有。

  5. Happy wheels
    Happy wheels 2018-12-28

    Got what I was searching for. Thanks for posting it. Such a help. Thumbs up.

  6. geometry dash lite
    geometry dash lite 2017-12-31

    或者 \r来判断新行开始, 旧行结束的, 所以导致在IE下, 最后一行的内容永远不会显示….

Leave a Reply

Your email address will not be published. Required fields are marked *