87,997
社区成员




//输入回车键监听
$divArea.keydown(function(event){
if(event.keyCode==13 || event.charCode == 13){
HtmlUtils.insertHtmlToRange($('<br/>')[0], this);
return false;
}
});
//工具类 HtmlUtils方法:
insertHtmlToRange : function(domNode, inputTarget) {
if(domNode == null || inputTarget == null){
return;
}
var sel = null;
var rang = null;
if( window.getSelection() ){
sel = window.getSelection();
rang = sel.rangeCount > 0 ? sel.getRangeAt(0) : null;
if (rang === null) {
var message = "无法插入内容";
$.tipsWindown({content:'text:' + message, singleButton:true});
return;
}
rang.deleteContents();
// 如果选择的对象是输入框时执行操作
if (sel.focusNode === inputTarget.innerHTML
|| sel.focusNode.parentElement === inputTarget
|| sel.focusNode === inputTarget) {
rang.insertNode(domNode);
} else {
var tipMessage = "无法插入内容,请检查焦点是否在输入框中";
$.tipsWindown({content:'text:' + tipMessage, singleButton:true});
return;
}
//光标移动至末尾
if (document.implementation && document.implementation.hasFeature && document.implementation.hasFeature("Range", "2.0")) {
var tempRange = document.createRange();
var chatmessage = inputTarget;
var position = rang.endOffset;
tempRange.selectNodeContents(chatmessage);
tempRange.setStart(rang.endContainer, rang.endOffset);
tempRange.setEnd(rang.endContainer, rang.endOffset);
sel.removeAllRanges();
sel.addRange(tempRange);
}
}else{//ie9 以下版本
textRange = document.selection.createRange();
if (textRange === null) {
var message = "无法插入内容";
$.tipsWindown({content:'text:' + message, singleButton:true});
return;
}
//插入 dom节点
textRange.collapse(false)
textRange.pasteHTML(domNode.outerHTML);
textRange.select();
}
},