2013-10-06 23 views
14

私のプロジェクトのTinyMceでbody要素の内容だけを取得し、その部分を別のページに挿入したいとします。 私のコントローラに私のテキストエリアを提出すると、tinymceの内容は、とhtmlタグを持っています。TinyMCE内でhtml、head、bodyタグを削除する

どのようにそれらを取り除く? 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> 
+0

私はフルページのプラグインを削除することで問題を解決:) – Mehdi

答えて

33
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" 
    ], 

ここでスクリプトから

+1

私の顧客はそれについて不平を言っていると私はここにフルページのプラグインが表示されません。これは私が使うすべてのものです:プラグイン: "table、inlinepopups"。すべてのヒント? –

+0

@PauloPedrosoプラグインが表示されている場合:[...]セクションで、フルページを削除することでそれを取得できます。 – Mehdi

+0

ありがとうMehdi、私が思い出したところでは、改行を追加したいと言う何らかのコントロールがあり、それをfalseに設定することで、それを実現することができました。残念ながら、このプロジェクトはすでに別の会社と一緒に行われており、私がどのように管理しているかを見るためのコードにアクセスすることはできません。私はそのセクションにフルページプラグインがなかったことを覚えています。 –

0

をフルページのプラグインを削除し、本体のコンテンツを取得するためのソリューションです文字数

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


        } 
     }); 
    }}); 
0

これは単純に次のようになります。

b = "<body>"; 
be = "</body>"; 
t = tinyMCE.activeEditor.getContent(); 
t = t.substr((t.indexOf(b) + b.length), (t.indexOf(be)-1)) 

"t" の値は、その後積極的に送信する前に、TinyMCEのエディタの "テキストエリア" の値(のsetContentない())に配置することができます。

希望に役立ちます。..

関連する問題