Это странное явление, которое началось только в последние несколько месяцев, я бы сказал.Текстовые области в Microsoft Edge отображают только дополнительные разрывы строк при использовании ColdFusion's encodeForHTML()
.Как воспроизвести ...
<cfset x = chr(49)&chr(13)&chr(10)&chr(50)&chr(13)&chr(10)&chr(51)>
<cfoutput>
<textarea rows="10">#encodeForHTML(x)#</textarea>
</cfoutput>
В Edge это выглядит примерно так ...
Но во всех других браузерах(и даже в Edge вплоть до недавнего времени) это выглядит так ...
Вот еще одно странное поведение, если вы проверяете этот элемент, дваждыщелкните по значению, как будто вы собираетесь его редактировать, ничего не меняйте, просто нажмите ввод, тогда дополнительные переводы строки исчезнут.Вот видео, демонстрирующее это ...
Поэтому я решил вывести ascii для всего ПОСЛЕ того, как он прошел encodeForHTML()
, и эторезультат ...
49| = 1
38|35|120|100|59|38|35|120|97|59| = 

50| = 2
38|35|120|100|59|38|35|120|97|59| = 

51| = 3
Что я и ожидал.Несколько лет назад я разговаривал с одним из основателей проекта esapi, который encodeForHTML()
использует, и он сказал, что он отключает разрывы страниц, чтобы предотвратить подделку журналов.Итак, поскольку это только недавно начало происходить в Edge, вы бы сказали, что это проблема с Edge, и он не может правильно обрабатывать 

в текстовой области?Или есть какой-то другой способ исправить это, который все еще будет безопасен от XSS?Спасибо!
Я также попытался просмотреть заметки о выпуске Microsoft Edge, но не смог найти ничего, связанного с этой проблемой.