关于html中textarea模块插入图片的问题

在html中,textarea对象是不能显示图片的,只能显示文字,于是我们只能使用间接的方式模拟textarea达到相同的效果。

html中div对象有个属性为contenteditable,它的值决定着该div对象控制的区域是否可编辑.当contenteditable设置为ture时,就可以手动编辑该区域。
附上代码
文字处理

 function EditShow(sender,content){
                     var element = document.getElementById("outputDLg");
                     element.innerText +=sender +" : " + content + "\r\n\r\n";
                     element.scrollTop = element.scrollHeight;
         
                     }

图片处理

function EditShowImage(sender){
                     var element = document.getElementById("outputDLg");
                     element.innerHTML += sender +" : " + "<img src=\"face.jpg\"  style=\"width:8%;height:20%;display:inline\"> </img> <br>";
                     element.scrollTop = element.scrollHeight;
                     }

效果图
在这里插入图片描述
全部代码如下

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>测试代码</title>
        <body>
            <div id = "app" style="width:1024px;height:500px">
                <div contenteditable="true" id="outputDLg" rows="3" cols="20" 
                style="width:100%;height:60%;background-color:#DBD9D8;overflow: auto;
                border-style:dotted;border-width:1px;border-color:8FBC8F;align:top" ></div>
                <input id="inputDLg" onkeypress="OnInputEnter()" style="width:100%;height:30%;border-style:dotted;border-width:1px;border-color:8FBC8F" />
                <button id="sendBtn"  onclick="OnSendBtn()" style="height:5%" >发送</button> 
                <script>
                    function OnSendBtn(){
                     EditShow("我",inputDLg.value);
                     EditShowImage("我");    
                    }
                    function EditShow(sender,content){
                     var element = document.getElementById("outputDLg");
                     element.innerText +=sender +" : " + content + "\r\n\r\n";
                     element.scrollTop = element.scrollHeight;
         
                     }
                     function EditShowImage(sender){
                     var element = document.getElementById("outputDLg");
                     element.innerHTML += sender +" : " + "<img src=\"face.jpg\"  style=\"width:8%;height:20%;display:inline\"> </img> <br>";
                     element.scrollTop = element.scrollHeight;
                     }
                     
                 </script>
            </div>       
        </body>
        
    </head>
</html>

上面的代码,如何多点几下发送会产生会产生bug,会导致上一条收到的图片无法预览。如图:
在这里插入图片描述
最文字处理部分经过修改,可正常显示

function EditShow(title,content){
	var element = document.getElementById("outputDLg");
	element.innerHTML += "<div>"+title +" : " +content+"</div> <br>";
	element.scrollTop = element.scrollHeight;
}

效果图如下
在这里插入图片描述
之所以出现这样的结果是因为innerText与innerHTML的不同导致的,
innerHTML可以解析HTML中的标签符号而innerText不能。例:

div.innerText = "我很<br>好啊";
div.innerHTML = "我很<br>好啊";

输出:

我很好<br>好啊
我很
好啊
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: 在 textarea 插入提示文本的方法有以下几种: 1. 使用 HTML5 的 placeholder 属性: 在 textarea 标签添加 placeholder 属性, 并赋值为你想要插入的提示文本即可. 2. 使用 JavaScript: 可以使用 JavaScript 来动态插入提示文本, 例如使用 jQuery 的 val() 方法将提示文本设置为 textarea 的值. 3. 使用 CSS: 可以使用 CSS 的伪元素 ::before 或 ::after 来插入提示文本. 例如: ```html <style> textarea::before { content: "请输入您的留言"; color: #aaa; } </style> <textarea></textarea> ``` 这样就可以在 textarea 插入提示文本了. ### 回答2: 要在textarea插入提示文本,你可以使用HTML的placeholder属性。placeholder属性可用于提供一个在文本框显示的提示性文本,帮助用户理解输入的预期内容。 下面是一个示例: <textarea placeholder="请输入您的评论"></textarea> 在这个示例,placeholder属性的值是"请输入您的评论",这个文本会在textarea显示为灰色的提示文本。当用户开始输入内容时,提示文本会自动消失。 如果需要通过JavaScript来插入提示文本,你可以使用JavaScript的setAttribute方法,如下所示: var textarea = document.getElementById("myTextarea"); // 获取textarea元素 textarea.setAttribute("placeholder", "请输入您的评论"); // 设置placeholder属性值 这个示例,首先获取了id为"myTextarea"的textarea元素,然后使用setAttribute方法来设置其placeholder属性的值为"请输入您的评论"。 通过这种方式,在textarea插入提示文本是相当简单的。无论是通过HTML的placeholder属性还是通过JavaScript的setAttribute方法,都可以帮助用户更好地理解他们需要在textarea输入什么内容。 ### 回答3: 要在textarea插入提示文本,可以通过在textarea标签添加placeholder属性来实现。这样,在textarea会显示一段示意性的文本,用于提示用户在该文本域输入什么内容。 例如,可以将textarea标签写成以下形式: <textarea placeholder="请输入您的建议或留言"></textarea> 上述代码的placeholder属性的值即为提示文本,可以根据实际需要进行修改。当用户点击或选定textarea时,提示文本会自动消失,当用户开始输入文本时,提示文本也会逐渐消失。 通过使用placeholder属性,我们可以有效地向用户提供输入内容的建议或指导,提高用户的使用体验和便利性。同时,也可以减少额外的说明文字或标签,使页面更加简洁明了。这在表单提交、留言功能等场景特别有用。 当用户提交表单或留言时,可以通过判断textarea的值是否为提示文本来防止用户未输入内容直接提交。可以通过JavaScript或其他编程语言在提交前进行判断和处理。 总之,通过使用textarea的placeholder属性,可以在该文本域插入提示文本,提供给用户输入内容的指导,提高用户体验和页面整体的可用性。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值