javascript - 在光标位置的内容可编辑 div 中附加一个图像标签

标签 javascript jquery

我有一个 contentEditable div 和一个 emojies 图片列表。我想做的是,当用户点击图像时,图像标签应该插入光标位置。

我厌倦了这样做,但这段代码只在 div 的末尾插入图像,这对我来说不是这种情况

$("#editable").append($(this).id); // $(this) is the image tag

我该如何解决我的问题? jsfiddle:http://jsfiddle.net/7VNTn/

最佳答案

试试这个代码,用任何图片 url 更改“IMAGE URL”

var image = '<p><img src="IMAGE URL" ></p>';

var sel, range, node;
if (window.getSelection) {
sel = window.getSelection();
if (sel.getRangeAt && sel.rangeCount) {
range = window.getSelection().getRangeAt(0);
node = range.createContextualFragment(image);
            range.insertNode(node);
          }
   } else if (document.selection && document.selection.createRange) {
               document.selection.createRange().pasteHTML(image);
   }

关于javascript - 在光标位置的内容可编辑 div 中附加一个图像标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23386697/

相关文章:

javascript - 在 for 循环中使用 jQuery.each 将数组映射到元素文本?

javascript - 没有 HTTPS 的带有 Google Hangout API 的本地 Javascript 文件

javascript - 使图像在用户滚动时出现

javascript - 如何在 jquery 图像幻灯片上添加文本?

javascript - jQuery - 触发点击事件时出现奇怪的错误

javascript - 如何将 $.deferred 与不可观察的函数一起正确使用?

javascript - 使用异步时出现错误 : false

javascript - 带有多个 div 和图标的 JQuery 切换

javascript - 如何从 Javascript 以编程方式调用 EditTextCell 的 onBrowserEvent()?

javascript - jquery 自动完成与 codeigniter - 将 Controller 名称传递给 javascript