jQuery   发布时间:2022-03-30  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了javascript – 在contentEditable元素中插入HTML元素大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个contentEditable div,我想插入HTML标签(一个简单的span元素).

是否有跨浏览器解决方案,允许我在div选择或光标位置插入这些标签.如果在页面上选择了其他内容(而不是在div中),我想将标记附加到div的末尾.

谢谢

最佳答案
这是一个kickstart

// get the selection range (or cursor     position)
var range = window.getSelection().getRangeAt(0); 
// create a span
var newElement = document.createElement('span');
newElement.id = 'myId';
newElement.innerHTML = 'Hello World!';

// if the range is in #myDiv ;)
if(range.startContainer.parentNode.id==='myDiv') {
   // delete whatever is on the range
   range.deleteContents();
   // place your span
   range.insertNode(newElement);
}

我没有IE但在firefox,chrome和safari上工作正常.也许你想玩range.startContainer只有在contentEditable div上进行选择才能继续.

编辑:根据quirksmode range intro你必须改变window.getSelection()部分是IE兼容.

var userSelection;
if (window.getSelection) {
    userSelection = window.getSelection();
}
else if (document.selection) { // should come last; Opera!
    userSelection = document.selection.createRange();
}

大佬总结

以上是大佬教程为你收集整理的javascript – 在contentEditable元素中插入HTML元素全部内容,希望文章能够帮你解决javascript – 在contentEditable元素中插入HTML元素所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: