HTML TextArea的值保存后显示错误问题。

使用TextArea.Value可以获得TextArea所显示的值。 

当Value里包含HTML标签,或HTML转义内容时,使用保存的值显示到TextArea时就是出现HTML解析错误特别是TextArea.value包含</textarea>这样的内容时,会导致整个页面混乱。


处理办法,赋值到textarea前,对内容进行转义: 

 str = str..replace(/&/g, "&amp;");   //转义&     应该最先执行

 str = str..replace(/>/g, "&gt");   //转义html标签结束符号


转义后显示到HTML页面:

   <textarea name="htmlContent" cols="100" rows="20">{{=htmlContent}}</textarea>


可以在前端使用js做,也可以在服务器端。


 str = str..replace(/&/g, " &amp;");   //转义&
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个使用 HTML、CSS 和 JavaScript 编写的留言面板,留言内容可以保存在网页上。 HTML 代码: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>留言面板</title> <style> /* 样式表 */ body { font-family: Arial, sans-serif; } .container { max-width: 800px; margin: 0 auto; } h1 { text-align: center; } form { margin-bottom: 20px; } label { display: block; margin-bottom: 5px; } input[type="text"], textarea { width: 100%; padding: 10px; margin-bottom: 20px; border: 1px solid #ccc; border-radius: 4px; } button[type="submit"] { display: block; margin: 0 auto; padding: 10px 20px; background-color: #007bff; color: #fff; border: none; border-radius: 4px; cursor: pointer; } .messages { list-style: none; padding: 0; margin: 0; } .message { background-color: #f2f2f2; padding: 10px; margin-bottom: 10px; border-radius: 4px; } .message h2 { margin-top: 0; } .message p { margin-bottom: 0; } </style> </head> <body> <div class="container"> <h1>留言面板</h1> <form> <label for="name">姓名:</label> <input type="text" id="name" required> <label for="email">邮箱:</label> <input type="text" id="email" required> <label for="message">留言:</label> <textarea id="message" required></textarea> <button type="submit">提交留言</button> </form> <ul class="messages"></ul> </div> <script src="app.js"></script> </body> </html> ``` CSS 代码: ```css /* 样式表 */ body { font-family: Arial, sans-serif; } .container { max-width: 800px; margin: 0 auto; } h1 { text-align: center; } form { margin-bottom: 20px; } label { display: block; margin-bottom: 5px; } input[type="text"], textarea { width: 100%; padding: 10px; margin-bottom: 20px; border: 1px solid #ccc; border-radius: 4px; } button[type="submit"] { display: block; margin: 0 auto; padding: 10px 20px; background-color: #007bff; color: #fff; border: none; border-radius: 4px; cursor: pointer; } .messages { list-style: none; padding: 0; margin: 0; } .message { background-color: #f2f2f2; padding: 10px; margin-bottom: 10px; border-radius: 4px; } .message h2 { margin-top: 0; } .message p { margin-bottom: 0; } ``` JavaScript 代码: ```js const form = document.querySelector('form'); const messages = document.querySelector('.messages'); // 从 localStorage 中获取留言列表 let messageList = JSON.parse(localStorage.getItem('messages')) || []; // 显示留言列表 function displayMessages() { messages.innerHTML = ''; messageList.forEach(message => { const li = document.createElement('li'); const h2 = document.createElement('h2'); const p1 = document.createElement('p'); const p2 = document.createElement('p'); h2.textContent = message.name; p1.textContent = message.email; p2.textContent = message.message; li.classList.add('message'); li.appendChild(h2); li.appendChild(p1); li.appendChild(p2); messages.appendChild(li); }); } // 提交表单 form.addEventListener('submit', event => { event.preventDefault(); // 阻止表单默认提交行为 const name = form.querySelector('#name').value; const email = form.querySelector('#email').value; const message = form.querySelector('#message').value; messageList.push({ name, email, message }); // 将留言添加到列表中 localStorage.setItem('messages', JSON.stringify(messageList)); // 将留言列表保存到 localStorage 中 form.reset(); // 重置表单 displayMessages(); // 显示留言列表 }); displayMessages(); // 页面加载时显示留言列表 ``` 这个留言面板使用了 HTML、CSS 和 JavaScript 技术,在页面中显示留言列表和留言表单。当用户提交留言时,它会将留言添加到 JavaScript 数组中,并将留言列表保存到 localStorage 中。当用户访问页面时,它会从 localStorage 中加载留言列表并将其显示在页面上。 请注意,这个留言面板仅用于示例目的,没有进行任何安全性和错误处理,您需要根据自己的需求进行适当的修改和改进。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值