javascript - 在 contenteditable div 中插入图像

标签 javascript jquery image contenteditable

尝试在 div 内插入图像,位于 loremipsum 之间:

$('#inpfile').on('change', function(){
	var img = $(this).prop('files')[0];
	document.execCommand('insertImage', img);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<input type='file' id='inpfile' accept="image/jpeg, image/png, image/gif">
<br><br>
<div contenteditable>
lorem ipsum
</div>

什么也没发生。有什么帮助吗?

最佳答案

insertImage 需要一个图像 URL,并且您正在传递一个文件对象。您的代码实际上插入了 <img>标签但没有 src属性,这就是您看不到它的原因。

您可以使用 FileReader 检索图像 URL。这是您想要实现的目标的工作代码:

$('#inpfile').on('change', function(){
    var file = $(this).prop('files')[0];
    var reader  = new FileReader();

    reader.addEventListener("load", function () {
        document.execCommand('insertImage', false, reader.result);
    }, false);

    if (file)
        reader.readAsDataURL(file);
});

关于javascript - 在 contenteditable div 中插入图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55137151/

相关文章:

javascript - 从带有符号的字符串中获取数组中的下一个键

javascript - jQuery - 在支持后退按钮的同时使用加载和更新地址栏中的 URL

javascript - 导入.vue文件

vb.net - 如何在VB.NET中的图像上创建鼠标悬停工具提示?

javascript - A* 六边形网格中的寻路

javascript - 需要帮助解决 ajax 问题吗?

jquery - ajax中如何多传一个参数?

jquery - 使用 scrollspy 无法正确突出显示导航

ruby-on-rails - 带有 Paperclip 的文件类型的自定义缩略图

html - 使用 Doxygen 内联显示图像