2013-10-31 38 views
1

我一直在探索stackoverflow和其他地方的衆多解決方案,試圖讓ckeditor 4在使用CKEditor的InsertHtml函數以編程方式向其添加若干頁面後滾動到頂部。添加我的html後,看起來很好,我想將光標定位在開頭。不能將ckeditor 4選項移動到開頭

下面是我沒有成功嘗試各種事情之一:

function MoveCaretToStart(myEditor) { 
    var range = new CKEDITOR.dom.range(editor.document); 
    range.selectNodeContents(editor.document.getBody()); 
    range.moveToElementEditStart(range.root); // also tried range.collapse(true); 
    range.select(); 
} 
... 
MoveCaretToStart(CKEDITOR.instances['myEditor']); // which already has contents in it 

這不會引發任何錯誤,但也不會移動光標位置(它仍然在的結束DOC)。我認爲這個會很容易,但肯定沒有。任何幫助讚賞。

上的更新11/1: 我只是做了以下測試:創建了一個簡單的HTML頁面只是一個文本區域,取消了所有額外的插件。我顯示頁面,在編輯器中輸入文本(工作正常),然後使用JS控制檯調用MoveEditorToBeginning();沒有任何反應,控制檯迴應「未定義」。我很困難。這裏是(使用CKEDITOR 4.22)整個HTML頁面的源代碼:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<script type="text/javascript" src="ckeditor/ckeditor.js"></script> 
</head> 

<body> 
<textarea cols="80" id="docBody" name="docBody" tabindex="1" accesskey="d" rows="10"> </textarea> 
<script type="text/javascript"> 
//<![CDATA[ 
CKEDITOR.replace('docBody', 
{ 
    removePlugins: 'elementspath,stylesheetparser,a11yhelp ,autosave,docprops,fakeobjects,find,image,link,magicline,pagebreak,pastefromword,scayt,specialchar,texttransform,wordcount,wsc', 

}); 
//]]> 

function MoveEditorCaretToBeginning() { 
var theEditor = CKEDITOR.instances['docBody']; 
    var body  = theEditor.document.getBody(); 
    var range  = new CKEDITOR.dom.range(body); 
    range.selectNodeContents(body); 
    range.collapse(true); 
    var selection = theEditor.getSelection(); 
    selection.selectRanges([range]); 
} 
</script> 
</body> 
</html> 

回答

1

這裏就是(你的情況editormyEditor)對我的作品:

var body = editor.document.getBody(); 
var range = new CKEDITOR.dom.range(body); 
range.selectNodeContents(body); 
range.collapse(true); 
var selection = editor.getSelection(); 
selection.selectRanges([range]); 
+0

遺憾的是,並沒有爲我工作,要麼Chrome或Firefox。如果我在創建我的文檔後使用ckeditor,然後在任一瀏覽器中使用Javascript控制檯來調用我的「MoveEditorCaretToStart」函數,則ckeditor中不會發生任何事情,並且控制檯顯示來自ckeditor代碼的「未定義」消息。所以我很困惑。我應該提及,我的網頁上有兩個不同的ckeditor實例,但我看不到這會干擾。 –

+0

@GaryHillerson,你的CKEditor版本是什麼? Mine是4.2,而且上次我檢查它的代碼是跨瀏覽器的。 – Noseratio

+0

我使用4.22,上週剛剛下載。我只做了一個簡單的測試,我只使用一個CKEditor實例,並使用標準的config.js(而不是我的自定義版本)。我刪除了除CKEDITOR textarea以外的所有HTML,並刪除了除ckeditor之外的所有Javascript。我的代碼放置了一個空的編輯器,工作正常。我插入一大塊HTML - 無論是手動還是編程 - 然後調用「移動到開始」功能。它不起作用。 Uggh。不過,感謝您的幫助。 –