2012-05-23 44 views
8

IAMはmvcアプリケーションで動作し、ckeditor 3.6.2バージョンを使用しています。私はckeditorから選択されたHTMLを得るために次のコードを使用しました。Ckeditorがhtmlが正しく動作しません。クロムブラウザで正しく動作しません。

CKEDITOR.editor.prototype.getSelectedHtml = function() { 

    if (CKEDITOR.env.ie) { 
     this.focus(); 
     selection = this.getSelection(); 
    } else { 
     selection = this.getSelection(); 
    } 
    if (selection) { 
     var bookmarks = selection.createBookmarks(), 
    range = selection.getRanges()[0], 
    fragment = range.clone().cloneContents(); 

     selection.selectBookmarks(bookmarks); 

     var retval = "", 
    childList = fragment.getChildren(), 
    childCount = childList.count(); 
     for (var i = 0; i < childCount; i++) { 
      var child = childList.getItem(i); 
      console.log(child); 
      retval += (child.getOuterHtml ? 
     child.getOuterHtml() : child.getText()); 
     } 
     return retval; 
    } 
}; 

私は、テキストを選択し、()CKEDITOR.instances.editor1.getSelectedHtmlを呼び出すとき、私はChromeブラウザでの問題があります。

例えば、私のエディタにコンテンツ< span style = "color:red;"> Welcome Note </span>があるとします。 「ウェルカムノート」を選択してgetSelectedHtml()メソッドfirefox、safariを呼び出すと、IE8はスパンタグ付きの「ウェルカムノート」を返しますが、クロムは「ウェルカムノート」というテキストのみを返します。 IamがCKEDITOR.instances.editor1.insertHtml( "< div style = 'font-size:12px'>" + CKEDITOR.instances.editor1.getSelectedHtml()+ "</div>")を使用して選択したコンテンツを置き換える場合、 getSelectedHtml()は選択されたテキストのみを返すので、私はフォントの色を失いました。しかし、これは他のブラウザでうまく動作します。

注:内容は「ようこそ<スパン スタイル=」色の場合:赤;「> < /スパン注>」と選択した単語が「ようこそ 注意」です。この場合、これはクロームと他のブラウザでは正しいでしょう。

適切な解決策を提案してください。

答えて

関連する問題