如何让换行符在DispWin窗口中正常显示?
解决文本域换行在新窗口无法显示的问题
问题根源是文本域里输入的回车键生成的是换行符\n,但HTML默认会忽略这类空白字符,直接输出的话不会渲染成换行效果。只需在将文本内容插入HTML前,把所有换行符替换成HTML的换行标签<br>即可解决。
修改后的代码如下:
<script> function display() { // 打开指定属性的新窗口 const DispWin = window.open('', 'NewWin', 'toolbar=no,status=no,width=700,height=500'); // 表单元素数组 const formElements = [ document.form1.activity, document.form1.des, document.form1.trouble, ]; // 表单标签数组 const formLabels = [ "Activity", "Description", "Troubleshooting Steps", ]; // 存储输出内容的字符串 let message = "<ul style='list-style-type:none;font-family:sans-serif;'>"; // 遍历表单元素,处理内容后拼接 for (let i = 0; i < formElements.length; i++) { // 将文本域中的换行符全局替换为HTML换行标签 const processedValue = formElements[i].value.replace(/\n/g, '<br>'); message += `<li style='margin-bottom:5px;'><b>${formLabels[i]}:</b> ${processedValue}</li>`; } message += "</ul>"; // 写入新窗口 DispWin.document.write(message); } </script>
核心修改说明:
- 新增
processedValue变量,通过replace(/\n/g, '<br>')把文本域中的所有换行符替换为HTML换行标签 - 将原代码中直接使用的
formElements[i].value替换为处理后的processedValue
修改后,文本域内通过回车键输入的换行就能在新窗口DispWin中正常显示了。
内容的提问来源于stack exchange,提问作者SWORDISA
相关产品推荐
相关产品推荐

