Pergunta

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?

Foi útil?

Solução

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;

Outras dicas

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 .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top