2011-08-02 3 views
1

こんにちは、私はniceditエディタで小さな問題niceditの1行目の問題?

を持っている問題は、最初の行が影響を受けることはできませんされて

です!

例:私はそれをマークテキストエリアボックス

の1行目に(asdad)をwritedと(中央整列)、それはボックスの中央に行くべきだ

をクリック

enter image description here

この写真を見ます

この問題は最初の行のみで..です

他の人には問題が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

私もこの問題を抱えていました。私たちは一人ではありません:)それはnicEditorのバグhttp://nicedit.com/forums/viewtopic.php?f=4&t=364&p=848&#p848です。それはまだ固定されていないように見える。

私はTinyMCEエディタを使ってこのバグを解決しました:)あなたがnicEditorに縛られていないなら、私はTinyMCEを見ることを提案します。

私はそれが役に立つと願っています。

0

私はこれに対する解決法を開発しました。 問題は、divにない最初の行です。 は、このことは、クローム55.0.2883.87に正常に動作

$(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")); 
    } 
} 

それを修正します。クロスブラウザーだとは思うけど、よく分からない。しかしそれは良いスタートです:)

関連する問題