6

私は公式のドキュメントとブログの投稿を何時間も読んでいて、確かにどこかに答えがすでに投稿されているでしょう..しかし運がありません。

設定をいじる量はないようです。tinymceが入力/送信された<p>要素のインラインの「style」属性を削除するのを停止します。すべての入力要素に「style」属性が必要です。しかし、それを機能させるために、でテストすることから始めています<p>

  • tinymceバージョン3.5b3

これが私の設定の最新のイテレーションです。(多くのバリエーション/試みから):

tinyMCE.init({
    mode : "textareas",
    theme : "advanced",

    plugins : "emotions,spellchecker,advhr,insertdatetime,preview,paste,table,media,directionality,style,xhtmlxtras,nonbreaking,pagebreak", 

    theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,formatselect,fontselect,fontsizeselect",
    theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
    theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,ltr,rtl",
    theme_advanced_buttons4 : "styleprops,|,cite,abbr,acronym,del,ins,attribs,|,nonbreaking,pagebreak",

    theme_advanced_toolbar_location : "top",
    theme_advanced_toolbar_align : "left",
    theme_advanced_statusbar_location : "bottom",
    theme_advanced_resizing : true,

    doctype : "<!DOCTYPE html>",

    convert_urls : false,

    //template_external_list_url : "gen4tinymce/lists/template_list.js",
    external_link_list_url : "gen4tinymce/lists/link_list.js",
    //media_external_list_url : "gen4tinymce/lists/media_list.js",

    valid_elements : "@[id|class|style|title|dir<ltr?rtl|lang|xml::lang],"
    + "a[rel|rev|charset|hreflang|tabindex|accesskey|type|"
    + "name|href|target|title|class],strong/b,em/i,strike,u,"
    + "#p[style],-ol[type|compact],-ul[type|compact],-li,br,img[longdesc|usemap|"
    + "src|border|alt=|title|hspace|vspace|width|height|align],-sub,-sup,"
    + "-blockquote,-table[border=0|cellspacing|cellpadding|width|frame|rules|"
    + "height|align|summary|bgcolor|background|bordercolor],-tr[rowspan|width|"
    + "height|align|valign|bgcolor|background|bordercolor],tbody,thead,tfoot,"
    + "#td[colspan|rowspan|width|height|align|valign|bgcolor|background|bordercolor"
    + "|scope],#th[colspan|rowspan|width|height|align|valign|scope],caption,-div,"
    + "-span,-code,-pre,address,-h1,-h2,-h3,-h4,-h5,-h6,hr[size|noshade],-font[face"
    + "|size|color],dd,dl,dt,cite,abbr,acronym,del[datetime|cite],ins[datetime|cite],"
    + "object[classid|width|height|codebase|*],param[name|value|_value],embed[type|width"
    + "|height|src|*],map[name],area[shape|coords|href|alt|target],bdo,"
    + "button,col[align|char|charoff|span|valign|width],colgroup[align|char|charoff|span|"
    + "valign|width],dfn,fieldset,form[action|accept|accept-charset|enctype|method],"
    + "input[accept|alt|checked|disabled|maxlength|name|readonly|size|src|type|value],"
    + "kbd,label[for],legend,noscript,optgroup[label|disabled],option[disabled|label|selected|value],"
    + "q[cite],samp,select[disabled|multiple|name|size],small,"
    + "textarea[cols|rows|disabled|name|readonly],tt,var,big",

    extended_valid_elements : "p[style]",
    inline_styles : true,
    verify_html : false
});

提案をありがとう!

4

4 に答える 4

13

Thariama が指摘したように、tinymce には問題がありませんでした..しかし、CodeIgniter$config['global_xss_filtering'] = TRUE;が何をしているかを知らなかったのは私の不足でした。同じ問題が発生している場合は、次の方法で対処しました。ここを参照してください: Codeigniter - 投稿ごとに XSS フィルタリングを無効にする.

于 2012-04-25T03:07:05.787 に答える
3

このフィドルは、tinymce の構成が完全に完璧であることを示しています。スタイル属性はすべての要素で許可されており、取り除かれません。

于 2012-04-24T07:20:18.557 に答える
0

you can try with an ajax request, like this

$("#submit").click(function(e) {
    ie8SafePreventEvent(e);
    var form_data = $("#form").serialize();
    var content = $.base64.encode(tinyMCE.activeEditor.getContent());
    $.ajax({
        type: "POST",
        url: "/your/post/processor",
        data: form_data + "&coded_content=" + content,
        success: function(return_msg){
            do_something
            },
        error: function(){
            alert("Sorry, we got an error, try later");
            }
        });
    });

Obviously in your controller you have to base64decode...

于 2012-12-27T00:45:02.110 に答える
0

私も CodeIgniter を使用していますが、設定$config['global_xss_filtering'] = false;を行っている間、スタイル属性にまだ問題がありました。したがって、どの解決策もうまくいかない場合は、送信時に tinyMCE データを base64 でエンコードし、Javascript を使用して隠しフィールドに配置してみてください。

$('#hiddenField').val(window.btoa(tinyMCE.get('tinyMCEtextareaID').getContent()));

このようにして元の文字列を保持し、次を使用して PHP で簡単にデコードできます。

$htmlstring = base64_decode($_POST['hiddenField']);
于 2016-11-25T11:26:04.723 に答える