Chrome中的输出:
<div id="content" contenteditable="true" style="border:1px solid #000;width:500px;height:40px;">
hey
<div>what's up?</div>
<div>
<button id="insert_caret"></button>
Run Code Online (Sandbox Code Playgroud)
我相信FF看起来像这样:
hey
<br />
what's up?
Run Code Online (Sandbox Code Playgroud)
在IE中:
hey
<p>what's up?</p>
Run Code Online (Sandbox Code Playgroud)
不幸的是,没有很好的方法来制作它,以便每个浏览器插入一个<br />而不是div或p-tag,或者至少我在网上找不到任何东西.
无论如何,我现在要做的是,当我按下按钮时,我希望将插入符号设置在文本的末尾,所以它应该看起来像这样:
hey
what's up?|
Run Code Online (Sandbox Code Playgroud)
任何方式这样做,所以它适用于所有浏览器?
例:
$(document).ready(function()
{
$('#insert_caret').click(function()
{
var ele = $('#content');
var length = ele.html().length;
ele.focus();
//set caret -> end pos
}
}
Run Code Online (Sandbox Code Playgroud) 我使用nicEdit有一个RTF文本区域,我需要添加一个onkeypress,onkeyup或onkeydown事件.
我像这样创建我的实例:
var emailRtf = new nicEditor({ iconsPath : 'nicEdit/nicEditorIcons.gif',
buttonList : ['bold','italic','underline','fontSize','forecolor','ol','ul','link','unlink','removeformat'],
maxHeight: 600}).panelInstance('REPLY_MESSAGE');
Run Code Online (Sandbox Code Playgroud)
我尝试了以下(with keypress,keydownand keyup):
emailRtf.addEvent("keypress", function() { alert('test') }); // Not working
emailRtf.addEvent("keypress", function(evt) { alert('test') }); // Not working
Run Code Online (Sandbox Code Playgroud)
但是,以下工作:
emailRtf.addEvent("blur", function() { alert('test') }); // Alert shows when I leave focus on the textArea
Run Code Online (Sandbox Code Playgroud)
如何添加key(press|up|down)到nicEdit编辑器?
注意:我的页面中有多个RTF textarea实例,我需要将key(press|down|up)事件添加到一个.我发现了这个问题,它在所有实例上添加了事件.另外,我想保留nicEdit.js完好无损.