天天看點

js往元素中添加一段html,javascript – 在contentEditable元素中插入HTML元素

這是一個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();

}