Я нашел ответ, и это время - браузер извращен во всех браузерах. Я также использовал пересмотренный пример примерно так:
http://jsfiddle.net/bCBRW/
<script type="text/javascript">
var textarea, staticOffset;
var iLastMousePos = 0;
var iMin = 160;
function startDrag(e) {
textarea = $(e.data.el);
textarea.blur();
iLastMousePos = mousePosition(e).y;
staticOffset = textarea.height() - iLastMousePos;
$(document).mousemove(performDrag).mouseup(endDrag);
return false;
}
function performDrag(e) {
var iThisMousePos = mousePosition(e).y;
var iMousePos = staticOffset + iThisMousePos;
if (iLastMousePos >= (iThisMousePos)) {
iMousePos -= 4;
}
iLastMousePos = iThisMousePos;
iMousePos = Math.max(iMin, iMousePos);
textarea.height(iMousePos + 'px');
if (iMousePos < iMin) {
endDrag();
}
return false;
}
function endDrag() {
$(document).unbind('mousemove', performDrag).unbind('mouseup', endDrag);
textarea = $('.cleditorMain:first');
textarea.focus();
textarea = null;
staticOffset = null;
iLastMousePos = 0;
var editor = $("#fldMessage").cleditor()[0];
editor.refresh();
if (!$.browser.msie) {
editor.focus();
}
}
function mousePosition(e) {
return {
x: e.clientX + document.documentElement.scrollLeft,
y: e.clientY + document.documentElement.scrollTop
};
};
$(document).ready(function() {
$('#fldMessage').cleditor({
width: '99%',
height: '100%',
useCSS: true,
styles: [["Paragraph", "<p>"], ["Header 1", "<h1>"], ["Header 2", "<h2>"],
["Header 3", "<h3>"], ["Header 4", "<h4>"], ["Header 5", "<h5>"],
["Header 6", "<h6>"], ["Code", "<pre>"]],
}).focus();
$('.cleditorMain:first').after('<div class="gripper" />');
$('.cleditorMain:first').next('.gripper').css({
'background': 'transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAFCAMAAACD1meMAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAGUExURbu7u////3iwjPUAAAACdFJOU/8A5bcwSgAAABRJREFUeNpiYMADGHEDBhroAwgwAA9QADeT0qnSAAAAAElFTkSuQmCC) no-repeat scroll center 2px',
'cursor': 's-resize',
'height': '9px',
'overflow': 'hidden'
}).bind("mousedown", {
el: $('.cleditorMain:first')
}, startDrag);
});
Так или иначе, это время. Я попробовал совершенно отдельный многофункциональный элемент управления редактора и обнаружил, что браузер не может поддерживать (даже Google Chrome), когда вы изменяете размер элемента управления richedit (который в основном использует IFRAME). Если вы изменяете размер вверх достаточно быстро, ваша мышь движется вперед слишком быстро и endDrag () никогда не срабатывает. Это просто причуда браузера с событиями перетаскивания в браузере.
Если вы двигаете мышь медленнее, проблема исчезнет. Проблема в том, что событие mousemove теряется при перемещении фокуса в IFRAME.