1
我正在选择一个单词并尝试用元素结构替换它。之前我使用的是IE=EmulateIE7
,下面的代码正在工作。由于其他一些问题,我删除了仿真IE7元,下面的insertNode停止工作。Rangy和InsertNode问题
function updateNodeAtRange(text, frag) {
var range = getFirstRange();
var htmlcontent='<span id="AuniqueId" class="style1">'+frag+'</span><span id="BuniqueId" class="style2">'+text+'</span>';
if (range) {
rangy.getSelection().deleteFromDocument();
var el = document.createElement("new_update");
el.setAttribute('id', 'CuniqueId');
el.appendChild(document.createTextNode(text)); //Not sure if this is right
el.innerHTML = htmlcontent;
range.insertNode(el);
rangy.getSelection().setSingleRange(range);
}
alert(document.getElementById('Filearea').innerHTML);
}
new_update元素并不是必需的,但它在此阶段起作用。也可以使用document.createDocumentFragment()
来代替innerHTML
?那我该如何插入那个位置?
我改变了'rangy.getSelection()deleteFromDocument()''到range.deleteContents();'它工作得很好。 – Dominic 2012-04-12 10:13:09
@Dominic:是的,那也可以。 – 2012-04-12 14:35:17