HTML:有没有办法在文本区域中显示图像?

34

所以我想在

5个回答

74

使用带有contentEditable属性的div,它类似于textarea。这就是所谓的所见即所得编辑器的创建方式。

div {
  width: 300px;
  height: 200px;
  border: 1px solid #ccc;
}
<div contentEditable="true">Type here. You can insert images too
  <img src="http://t2.gstatic.com/images?q=tbn:ANd9GcQCze-mfukcuvzKk7Ilj2zQ0CS6PbOkq7ZhRInnNd1Yz3TQzU4e&t=1" />
</div>


4
如果我尝试在Chrome中插入换行符,这个示例会做一些非常奇怪的事情。 - aroth
@aroth 看起来是因为每个换行符都会创建一个新的 div 元素,而每个 div 都有宽度、高度和边框属性。 - KhalilRavanna
回答没有解决他的问题。这可行吗?如果不行,请说明然后继续提供额外的信息。 - undefined

11

1
因为我不想建立一个复杂的编辑器,正如我所说,我只想要“文本”和“照片”。 - Adam Halasz
用户的问题特别涉及文本区域。 - Dustin Oprea
4
@DustinOprea - 这是不可能的。<textarea> 元素只能容纳纯文本,而不能包含其他节点。 - Álvaro González

2
简短的回答是不行,很抱歉。

1
谢谢您的回答@thomasmalt,那么您建议我该怎么做呢? - Adam Halasz
我不确定你想要实现什么。你是想使用带有图片的文本区域来向用户展示内容,还是想在表单中使用文本区域,让用户提供文本并上传图片? - thomasmalt

1
你可以使用 CSS 为文本区域设置背景图片,使用 JS 设置文本。

我不想为文本区域设置背景,我想在文本区域内放置图片。或者你是指通过设置文本区域的背景来模拟图片在其中的效果?如果是这样的话,那并不是一个好主意,因为会有多张图片,并且这些图片可能会被更新和删除。我修改了我的问题以更好地说明这一点。 - Adam Halasz
据我所知,在文本区域中无法使用图片,无论是通过CSS设置的背景图片还是img元素。 - matsolof
我不知道你想做什么,但你可以在文本区域内插入任何东西,除了纯文本。虽然你可以使用CSS为文本区域设置背景图像,但如果你想要更改它,那么你可以使用JavaScript来更改背景。 - yangqi

0
你可以编写一个脚本(最好是用PHP),检查是否存在不需要的元素(除了<p><img>之外)。
然后,你可以将用户发送回“表单”让他重新填写,或者你可以删除整个不需要的标签。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接