读书人

一个用iframe写的编辑器lt;pgt;lt;/pgt;换成

发布时间: 2012-02-04 15:43:08 作者: rapoo

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

读书人网 >JavaScript

热点推荐