你好,我对nicedit编辑器的问题很小
问题是
第一行是不会受到影响的!
示例:
我在textarea框的第一行写了(asdad)
我标记并点击(居中对齐)
它应该到框的中心
看到这张照片
这个问题只在第一行..
其他人工作正常
问题仅出在firefox中!
我正在使用firefox 3 .....我看到了这个问题!
我的代码是
<script src="http://js.nicedit.com/nicEdit-latest.js" type="text/javascript"></script>
<script type="text/javascript">bkLib.onDomLoaded(nicEditors.allTextAreas);</script>
<textarea cols=40 rows=10></textarea>
谢谢!
答案 0 :(得分:0)
我也有这个问题。而且我们并不孤单:)这是nicEditor的错误http://nicedit.com/forums/viewtopic.php?f=4&t=364&p=848&#p848。并且看起来还没有修复。
我已经通过使用TinyMCE编辑器解决了这个错误:)如果你没有与nicEditor绑定,我建议你看一下TinyMCE。
我希望它会有所帮助。
答案 1 :(得分:0)
我已经为此开发了一个解决方案。 问题是第一行不在div中。 这将解决它
$(document).ready(function () {
$('.nicEdit-main').bind('DOMSubtreeModified',function(){
nicEditFirstLinePatch();
});
});
和
function nicEditFirstLinePatch(){
function placeCaretAtEnd(el) {
el.focus();
if (typeof window.getSelection != "undefined"
&& typeof document.createRange != "undefined") {
var range = document.createRange();
range.selectNodeContents(el);
range.collapse(false);
var sel = window.getSelection();
sel.removeAllRanges();
sel.addRange(range);
} else if (typeof document.body.createTextRange != "undefined") {
var textRange = document.body.createTextRange();
textRange.moveToElementText(el);
textRange.collapse(false);
textRange.select();
}
}
textNode=$('.nicEdit-main').contents().filter(function(){
return this.nodeType == 3;
})[0];
$('.nicEdit-main').attr('id','toHandle');
if(textNode){
var newNode = document.createElement('div');
var newNodeContent = document.createTextNode(textNode.nodeValue);
newNode.appendChild(newNodeContent);
var parentNode=document.getElementById('toHandle');
parentNode.replaceChild(newNode,textNode);
var range = document.createRange();
range.setStart(newNode,0);
}
if(document.getElementById('toHandle').children.length==1){
placeCaretAtEnd(document.getElementById("toHandle"));
}
}
在Chrome 55.0.2883.87上运行正常。我认为它是crossbrowser,但我不确定。不过这是一个好的开始:)