I want to get only the content of the body element in TinyMce in my project and then inject that part inside another page. when I submit my textarea to my controller the content of tinymce does have , and html tag.
how to get rid of them ? is there any built in functionality inside TinyMce for doing this ?
Here is my code:
<script type="text/javascript">
/*tinymce definition*/
tinymce.init({
selector: "textarea.tinymce",
theme: "modern",
height: 10,
plugins: [
"advlist autolink link image lists charmap print preview hr anchor pagebreak spellchecker example fullpage",
"searchreplace visualblocks visualchars code fullscreen insertdatetime media nonbreaking",
"save table contextmenu directionality emoticons template paste textcolor wordcount"
],
content_css: "css/content.css",
toolbar: "insertfile undo redo | styleselect | save | table | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image | print preview media fullpage | forecolor backcolor emoticons charmap code | hr paste pagebreak searchreplace spellchecker template visualblocks insertdatetime",
style_formats: [
{title: 'Bold text', inline: 'b'},
{title: 'Red text', inline: 'span', styles: {color: '#ff0000'}},
{title: 'Red header', block: 'h1', styles: {color: '#ff0000'}},
{title: 'Example 1', inline: 'span', classes: 'example1'},
{title: 'Example 2', inline: 'span', classes: 'example2'},
{title: 'Table styles'},
{title: 'Table row 1', selector: 'tr', classes: 'tablerow1'}
]
});
</script>
and in my html page :
<div class="page-content">
<form action="somewhere" method="post" role="form">
Title:<br/> <input type="text" name="title" style="width:100%"/><br/> <br /> Your Text:<br/>
<textarea name="content" class="tinymce" cols="30" rows="10" ></textarea>
<br /> <br /> <input type="submit" name="submit" />
</form>
</div>
I want to get only the content of the body element in TinyMce in my project and then inject that part inside another page. when I submit my textarea to my controller the content of tinymce does have , and html tag.
how to get rid of them ? is there any built in functionality inside TinyMce for doing this ?
Here is my code:
<script type="text/javascript">
/*tinymce definition*/
tinymce.init({
selector: "textarea.tinymce",
theme: "modern",
height: 10,
plugins: [
"advlist autolink link image lists charmap print preview hr anchor pagebreak spellchecker example fullpage",
"searchreplace visualblocks visualchars code fullscreen insertdatetime media nonbreaking",
"save table contextmenu directionality emoticons template paste textcolor wordcount"
],
content_css: "css/content.css",
toolbar: "insertfile undo redo | styleselect | save | table | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image | print preview media fullpage | forecolor backcolor emoticons charmap code | hr paste pagebreak searchreplace spellchecker template visualblocks insertdatetime",
style_formats: [
{title: 'Bold text', inline: 'b'},
{title: 'Red text', inline: 'span', styles: {color: '#ff0000'}},
{title: 'Red header', block: 'h1', styles: {color: '#ff0000'}},
{title: 'Example 1', inline: 'span', classes: 'example1'},
{title: 'Example 2', inline: 'span', classes: 'example2'},
{title: 'Table styles'},
{title: 'Table row 1', selector: 'tr', classes: 'tablerow1'}
]
});
</script>
and in my html page :
<div class="page-content">
<form action="somewhere" method="post" role="form">
Title:<br/> <input type="text" name="title" style="width:100%"/><br/> <br /> Your Text:<br/>
<textarea name="content" class="tinymce" cols="30" rows="10" ></textarea>
<br /> <br /> <input type="submit" name="submit" />
</form>
</div>
Share
Improve this question
asked Oct 6, 2013 at 13:02
MehdiMehdi
3,7633 gold badges38 silver badges66 bronze badges
3
|
3 Answers
Reset to default 58 plugins: [
"advlist autolink autosave link image lists charmap print preview hr anchor pagebreak spellchecker",
"searchreplace wordcount visualblocks visualchars code fullscreen insertdatetime media nonbreaking",
"save table contextmenu directionality emoticons template textcolor paste fullpage textcolor colorpicker"
],
remove the fullpage plugin from script
This might be simpler:
b = "<body>";
be = "</body>";
t = tinyMCE.activeEditor.getContent();
t = t.substring((t.indexOf(b) + b.length), (t.indexOf(be)-1)) //need substring() (including comment b/c can't make edit under 6 chars)
The "t" value can be then actively placed in the "textarea" value (not setContent()) of the tinymce editor, before sending.
Hope that helps..
Here is the solutions for getting body content and character count
JS FIDDLE DEMO
tinymce.init({
selector: "textarea",
toolbar: "mybutton",
setup: function(editor) {
editor.addButton('mybutton', {
icon: 'image',
onclick: function(e) {
console.log(e.target);
console.log(editor.getContent());
var utf8length = 0;
var string = editor.getContent();
for (var n = 0; n < string.length; n++) {
var c = string.charCodeAt(n);
if (c < 128) {
utf8length++;
}
else if((c > 127) && (c < 2048)) {
utf8length = utf8length+2;
}
else {
utf8length = utf8length+3;
}
}
console.log(utf8length);
var str = editor.getContent();
var m = encodeURIComponent(str).match(/%[89ABab]/g);
console.log(editor.getContent());
console.log(str.length + (m ? m.length : 0));
}
});
}});
body
tag take a look at stackoverflow.com/questions/6195615/… – NoWar Commented Dec 25, 2019 at 5:53