javascript - 如何在文本区域字段中显示图像代替用户输入 URL?
问题描述
使用 NodeJS、Express 和 MongoDB,我有一个文本区域供用户向博客添加文本。
我想要的是用户能够将图像 URL 放入文本区域并提交他的帖子,应用程序将显示一个图像来代替该 URL。我怎样才能做到这一点 ?
我试图简单地在其中添加一个 URL,但它不起作用。我还尝试向某些文本添加强标签,但没有得到应用。由于我将是唯一能够发帖的用户,因此我也希望拥有该功能。
这是创建新帖子的 HTML 部分:
<div class="field">
<label>Contenu</label>
<textarea name="body"></textarea>
</div>
显示帖子(我只显示身体部分):
<div class="description">
<p><%=blog.body%></p>
</div>
如果您想查看我的帖子的 CREATE 路线(确实有效):
router.post('/blogs',middleware.isLoggedIn,function(req,res){
var titre = req.body.title;
var image = req.body.image;
var body = req.body.body;
var author = {
id : req.user._id,
username : req.user.username
}
var newBlog ={title:titre ,image:image, body:body, author:author};
Blog.create(newBlog, function(err,newBlog){
if(err){
console.log(err);
res.render('blog/new');
}
else
{
console.log(newBlog);
res.redirect('/blogs');
}
});
});
我想要的是当我在文本区域中使用“强”之类的标签时,将用户输入(只有我用于帖子)转换为 URL 输入或字体样式的图像。
解决方案
您不能直接在 textarea 控件中显示图像。
您可以获得的关闭是在其上覆盖图像,但它不会成为文本区域中信息的一部分。也就是说,文本不会在它周围流动,并且在发布表单时它不会包含在 textarea 的数据中。
也许可写的 div (内容可编辑)更适合您的目的。html
但是您可以使用 contenteditable 属性指定元素的内容是否可编辑。
注意:当元素上没有设置 contenteditable 属性时,该元素将从其父元素继承它。
<div contentEditable="true"> type here
<img src="http://t2.gstatic.com/images?q=tbn:ANd9GcQCze-mfukcuvzKk7Ilj2zQ0CS6PbOkq7ZhRInnNd1Yz3TQzU4e&t=1" />
</div>
但请阅读此链接:为什么 ContentEditable 很糟糕
推荐阅读
- java - @Query 不接受 LIKE 来执行细粒度搜索
- java - 如何检查应用程序是否安装了我的链接或已取消?
- redux - 如何将查询缩减器、removekey 和其他模块从 admin-on-rest 导入到自定义列表?
- c++ - 将智能指针传递给模板类成员函数时出现编译错误
- angular - 停止 Angular 中的无限循环反应形式控制更新
- python - 在循环中将多个变量定义为空列表
- go - 使用 ast 包删除未使用的导入?
- reporting-services - 从子报表返回时保留参数值
- android - 如何禁用 Kotlin 中的按钮?
- javascript - 按复选框组的多过滤元素