【发布时间】:2012-05-11 23:32:23
【问题描述】:
我正在为我的博客网站制作文本编辑器。我想给用户一个小工具箱,他们可以在其中通过选择文本并应用一些样式来编辑他们的博客文章,例如使所选文本变为粗体或斜体或为所选文本赋予一些颜色。还有用于插入图像和视频链接的选项。
我搜索了 Stack Overflow,但没有得到任何满意的解决方案。
如果有人能帮我找到插入符号位置以供选择(或不选择),那就太好了。我尝试了 jQuery caret 插件,但它不起作用。
我的代码看起来像这样(仅在阅读 Stack Overflow 上的帖子时到达这里):
HTML:
<div id="editor" contentEditable="true">
Initial text...
</div>
在单独的 JS 文件中:
(function(){
$("#editor").bind("keydown keypress mousemove", function() {
alert("Current position: " + $(this).caret().start);
});
}());
当页面加载并且在按键或任何事件上没有任何反应时,我在 Firebug 中收到以下错误:
上面写着:
f.value 未定义
我也试过this link
但如果原始 div 中有任何其他标签,此处提供的解决方案将不起作用。
请帮忙。另外,如果您有更好的解决方案或完全不同的方法,请指导我。
【问题讨论】:
-
当你得到这个插入符号位置后你想做什么?
-
我会用一些标签将所选内容中的文本包裹起来,并将现场预览提供给用户。在发布问题时,我不能做 SO 做的事情,在单独的容器中提供预览。博客可以很长很多次。
-
哦!该警报只是为了测试其值是否正常...我倾向于存储该值并使用单独的函数对其进行操作。
标签: javascript jquery contenteditable jquery-events rich-text-editor