一个用iframe写的编辑器,<p></p>换成<br />后,插入超链接出现了问题
一个用iframe写的编辑器,用户敲回车时,默认是插入 <p> </p> ,已经用以下代码使 <p> </p> 换成了 <br /> :
frames[ 'editor '].document.onkeydown = function()
{
if(frames[ 'editor '].event.keyCode == 13) {
frames[ 'editor '].document.selection.createRange().pasteHTML( ' <br/> <!----> ');
//select();
return false; //屏蔽回车是 <p> </p>
}
}
现在的问题是,进行插入超链接操作时出了问题。比如,现在编辑器中有以下文字:
aaa
bbb
(对应的源码是“aaa <br /> bbb”),选中aaa插入超链接,如果没有正好精确的选中aaa(比如多选了一个空白,“aaa ”),插入超链接后的代码实际为“ <a href= " "> aaa <br /> bbb </a> ”,而想要的代码应该是“ <a href= " "> aaa </a> <br /> bbb”。
这个问题有朋友遇到过吗,怎么解决呢?
------解决方案--------------------这个主要看插入超链接的代码了
------解决方案--------------------moveEnd是结束位移动第二个参数是-1是结束位向前移动1位
建议将rng.htmlText提出来分析一下找出最后一个 <br> 的位置 然后用moveEnd移动到最后一个 <br> 前面
rng.moveEnd( "character ",rng.htmlText.lastIndexOf( " <br ") - ren.htmlText.length);
rng.select();