Frage

H7i guys, I am having a weird problem with the TinyMce editor. What I am trying to do is to select some text, click a button and append a tag at the start and at the end.

For example, if the original text is <p>hello</p>, the end text would be <myTag><p>hello</p></myTag>.

It works fine but when selecting a single line of text the existing tags are not returned. So in the previous example I would get hello only and not <p>hello</p>.

When I select multiple lines it returns the tags.

Here is what I have tried so far:

            var se = ed.selection.getContent(); //Doesn't return tags on single line
            var be = ed.selection.getNode().outerHtml; //Doesn't work with multiline
            var ke = ed.selection.getContent({ format: 'raw' }); //Same as the first option

Any help?

War es hilfreich?

Lösung

You will need to employ different functions to get the content, depending on the content the user selected

var node = ed.selection.getNode();

if (node.nodeName != 'P' )
{
     content = ed.selection.getContent();
}
else content = node.outerHtml;

Andere Tipps

I use this, and works well:

var textt= tinyMCE.activeEditor.selection.getContent({format : 'text'});
alert(textt);

BUT NOTE: You should not select text from the start of a paragraph to the end of a paragraph,

enter image description here

because in that case(maybe bug of TinyMce), it cant get content .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top