2012-08-07 13 views
0

我有一個自定義插件可以完成一些操作,並且在處理結束時它應該使用所選文本(實際選定的HTML)在HTML中創建一個鏈接,如果某些文本是當前選中。選定的HTML格式必須保留(即不得丟失HTML標籤和屬性),並且必須在所有元素周圍創建鏈接。 在FCKEditor的(舊版本CKEDITOR的),這是可以做到的:如何通過API在CKEDITOR中創建鏈接

FCK.CreateLink("mylink"); 

回答

2

什麼解決我的問題是這樣的:

var attributes = Array(); 
attributes["href"] = link; 
var style = new CKEDITOR.style({ element : 'a', attributes : attributes }); 
style.type = CKEDITOR.STYLE_INLINE; 
style.apply(editor.document); 

它在所選元素中創建了保持所有格式化的鏈接。

+0

但是我可以通過以下方法添加文本( SOME_TEXT_HERE)嗎?如果是這樣,我該怎麼做? – 2017-06-13 16:24:53

2

隨着CKEDITOR你可以做這樣的:

var selectedText = CKEDITOR.instances.editor1.getSelection().getSelectedText(); 
CKEDITOR.instances.editor1.insertHtml('<a href="mylink">'+selectedText+'</a>'); 
+0

當選擇是HTML塊時它會工作嗎?我測試過它,它似乎返回選定的純文本。 – Berne 2012-08-07 20:15:17

+0

'CKEDITOR.instances.editor1.getSelection()'返回一個[選擇對象](http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.dom.selection.html)。你可以代替getSelectedText()使用getSelectedElement() – 2012-08-08 08:07:15