日期:2014-05-16  浏览次数:20335 次

一个用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();