web-dev-qa-db-ja.com

TinyMCE内のhtml、head、bodyタグを削除する

プロジェクトのTinyMceのbody要素のコンテンツのみを取得し、その部分を別のページに挿入したい。 textareaをコントローラーに送信すると、tinymceのコンテンツにはとhtmlタグが含まれます。

それらを取り除く方法は?これを行うためのTinyMce内の組み込み機能はありますか?

これが私のコードです:

    <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>

そして私のhtmlページで:

    <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>
26
Mehdi
    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"
    ],

スクリプトからフルページプラグインを削除する

51
Mehdi

これはもっと簡単かもしれません:

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)

送信する前に、「t」値をtinymceエディターの「textarea」値(setContent()ではない)にアクティブに配置できます。

お役に立てれば幸いです。

2
user6565001

ボディコンテンツと文字数を取得するためのソリューションは次のとおりです

JS FIDDLEデモ

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));


                  }
        });
    }});
0
PavanAsTechie