現在のtinyMCEバージョン(3.5.2)。
やあ、
カスタムフォーマットを追加および削除するカスタムプラグインに取り組んでいます。
現在の選択にフォーマットを追加するのは簡単ですが、複数のフォーマットを削除するための適切な解決策を見つけることができませんでした。
私が見つけたのは、RemoveFormatコマンドでした。
tinymce.activeEditor.execCommand('RemoveFormat');
// which is the same as
tinymce.activeEditor.formatter.remove('removeformat');
この関数は、現在選択されているフォーマットをすべて削除します。これは、一部のフォーマットのみを削除したいので、間違いなく同じです。
remove
だから私はすべてのフォーマットのメソッドを呼び出そうとしました
tinymce.activeEditor.formatter.remove('format_1');
tinymce.activeEditor.formatter.remove('format_2');
...
ただし、ネストされたフォーマットが削除されないため、これも成功しませんでした。次の段落を選択して呼び出すtinymce.activeEditor.formatter.remove('format_2');
と、段落はこの形式自体を使用しないため、形式は削除されません。
<p class="format_1">abcd<span class="format_2>ef</span>g</p>
要素のフォーマットと、 RemoveFormatのようなそのすべての子のフォーマットを削除する方法はありますか?
更新(@Thariama)
私のフォーマットはすべて、次の構造のカスタムフォーマットです。
"demo_format_1" : {
"classes" : "demo_format_1",
"deep" : true,
"exact" : false,
"inline" : "span",
"selector" : "*",
"title" : "Demo Format"
}}
アップデート:
これを再度実装した後、私はさらにケースを見つけました。これが私の頭に浮かんだすべての特別なケースの例です:
フォーマットを削除する前のテキスト:
<p>abc<span class=demo_format_1>def</span></p>
ケース1(ジェフリー・トゥでカバー)
段落全体を選択すると、次の結果が得られます。
<p>abcdef</p>
ケース2
fのみを選択すると、次の結果が得られます。
<p>abc<span class=demo_format_1>de</span>f</p>
ケース3
cdのみを選択すると、次の結果が得られます。
<p>abcd<span class=demo_format_1>ef</span></p>