2013-10-17 78 views
4

在應用程序中,我在iframe中包含可編輯元素的內容,並且想要將CKEditor內聯應用於這些元素。除了當我滾動iframe時,CKEditor工具欄不會隨其滾動。是否有一個特殊的標誌或某種方式讓工具欄滾動iframe內容而不是父窗口?另外我想避免將CKEditor腳本添加到iframe中。CKEditor iframe中元素的內嵌編輯器

+2

值得一提的CKEditor的的bug跟蹤系統,我們的討論:https://dev.ckeditor.com/ticket/11003 – Reinmar

+0

你能分享你用來獲取行內編輯器與一個iframe中的元素上班的代碼?我遇到了問題 – jetcom

回答

1

您可以通過將iframe與包含與iframe相同大小且具有相對定位的容器元素進行包裝來實現此目的。

<div id="iframe-wrapper"> 
    <iframe> 
     <body> 
      <div contenteditable></div> 
     </body> 
    </iframe> 
</div> 

然後您將每個ckeditor面板的位置移動到該容器元素中,絕對定位值將起作用。

var el = $('iframe').contents().find('[contenteditable]'); 
el.ckeditor(); 
el.ckeditorGet().on('instanceReady', function(){ 
    $('body > .cke_float').appendTo('#iframe-wrapper'); 
}); 
+0

不完美,但是可行的黑客 – minlare

+0

還沒有嘗試過我自己,但是當iframe滾動時這麼做嗎? – georgephillips

+0

不,這隻會在iframe高度固定在與容器相同的高度時起作用。 雖然,我相信你可以採用iframe的滾動並按照這種方式工作,但是你也必須處理當元素超出iframe屏幕邊界時發生的情況。 – minlare