我工作的一个跨浏览器基于网络的注解工具集,它允许用户选择网页HTML注释(选择,高亮,删除格式)
- HIGHLIGHT的任何部分,如果您选择:
约翰<李>大< /李> <李>转储< /李>
结果
<span style="background-color: rgb(106, 168, 79)">john is</span> <li><span style="background-color: rgb(106, 168, 79)">big</span></li> <li><span style="background-color: rgb(106, 168, 79)">dump</span></li>
- 删除格式:如果您选择:
john
从
<span style="background-color: rgb(106, 168, 79)">john is</span> <li><span style="background-color: rgb(106, 168, 79)">big</span></li> <li><span style="background-color: rgb(106, 168, 79)">dump</span></li>
结果
<span style="background-color: rgb(106, 168, 79)"></span> john <span style="background-color: rgb(106, 168, 79)">is</span> <li><span style="background-color: rgb(106, 168, 79)">big</span></li> <li><span style="background-color: rgb(106, 168, 79)">dump</span></li>
- 撤销/重做:好的,有特色
为了能够撤销和重做动作进行
我有一个部分解决了突出
function highlight(colour) {
var range, sel;
if (document.selection && (!window.getSelection)) {
// IE case
range = document.selection.createRange();
range.execCommand("BackColor", false, colour);
} else if (window.getSelection) {
// Non-IE case
sel = window.getSelection();
if (sel.getRangeAt) {
range = sel.getRangeAt(0);
}
//without designmode=on, you can't highlight the selected html (chrome)
document.designMode = "on";
if (range) {
sel.removeAllRanges();
sel.addRange(range);
}
// HiliteColor avoids FF3.5 from painting the background of the whole block
if (!document.execCommand("HiliteColor", false, colour)) {
document.execCommand("BackColor", false, colour);
}
document.designMode = "off";
}
}
因为我的需求与richtext编辑器有很多相似之处,所以我在google关闭编辑器中查看ckeditor的代码和(广泛地)要么。我已经放弃了希望,因为他们只在可编辑的iframe中工作。我的要求之一是不允许用户更改原始文本,但只能添加自己的注释(高亮显示,内联注释等)。
我很想在这里把你所有的意见都告诉我,如果可能的话,指点一下正确的方向。
--Choesang
我希望它是可行的,试图用谷歌封闭编辑器来完成你最后一周的内容。 – tchoesang 2009-12-10 15:15:54
你是对的,最后我发现用ckeditor可以使所有东西只读,并且仍然保持iframe的可信度。请在以下完整的代码中找到,取自http://cksource.com/forums/viewtopic.php?f=11&t=15659 – tchoesang 2009-12-16 16:40:47