2010-03-05 9 views
10

bekommen Ich habe ein Plugin für CKEditor, aber es beruht auf dem aktuell ausgewählten Text.Gewählten Text mit CKEditor Plugin auf IE

In FF und Chrome kann ich verwenden:

var selectedText = editor.getSelection().getNative(); 

aber in IE nicht funktioniert und ich [object Object]

Irgendwelche Vorschläge bekommen nur?

Antwort

19

Dies ist, was ich benutze:

var mySelection = editor.getSelection(); 

if (CKEDITOR.env.ie) { 
    mySelection.unlock(true); 
    selectedText = mySelection.getNative().createRange().text; 
} else { 
    selectedText = mySelection.getNative(); 
} 
+0

Dieser gerade mein Tag machte. gut gemacht! und danke dir! – AnApprentice

+0

OK, das sieht gut aus, aber wo stelle ich das in meinen Dialogcode? Ich dachte, es wäre unter onShow: function (HIER), aber ich bekomme den Fehler, dass selectedText nicht definiert ist, wenn ich den Code unten im Inhaltsbereich verwende. Typ: 'html', html: selectedText – Alex

2

@TheApprentice

Sie stellen es so:

(function(){ 

    var getSelectedText = function(editor) { 
    var selectedText = ''; 
    var selection = editor.getSelection(); 
    if (selection.getType() == CKEDITOR.SELECTION_TEXT) { 
     if (CKEDITOR.env.ie) { 
     selection.unlock(true); 
     selectedText = selection.getNative().createRange().text; 
     } else { 
     selectedText = selection.getNative(); 
     } 
    } 
    return(selectedText); 
    } 

... 

mit einem Aufruf wie folgt aus:

onShow: function() { 
    // Get the element currently selected by the user 
    var editor = this.getParentEditor(); 
    var selectedContent = getSelectedText(editor); 
13

Benutzen :

editor.getSelection().getSelectedText(); 

Oder:

CKEDITOR.instances["txtTexto"].getSelection().getSelectedText() 

"txtTexto" = Die ID des Textarea-Tages

2

die Felder mit einer Auswahl an prefill wollen, tun Sie es einfach so und sicher selbst eine lange Reise.

onShow: function() { 
    this.setValueOf('tab-id', 'field-id', editor.getSelection().getSelectedText().toString()); 
}, 

Einen schönen Tag noch!

0

In den neueren Versionen von CKEditor, scheint es eine Möglichkeit, einfachere Methode zu sein:

var selectedHTML = editor 
         .getSelectedHtml() 
         .getHtml(); //result: <p>test</p> 
Verwandte Themen