タイトルが示すように、私は 公式ドキュメント を調べましたが、機能していません。これが私のJavaScript(jQueryを利用)コードです:
$(document).ready(function() {
tinymce.init({
element_format: "html",
schema: "html4",
menubar: false,
plugins: 'preview textcolor link code',
selector: 'TEXTAREA#rtf',
toolbar: 'preview | bold italic underline strikethrough | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | blockquote subscript superscript | code'
});
tinymce.activeEditor.setContent($('TEXTAREA#rtf').text());
});
(咳)どういうわけか、私が今始めたところにすべてを復元した後、それは機能します:
$(document).ready(function() {
tinymce.init({
element_format: "html",
menubar: false,
plugins: 'preview textcolor link code',
schema: "html4",
selector: 'TEXTAREA#rtf',
toolbar: 'preview | bold italic underline strikethrough | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | blockquote subscript superscript | code'
});
});
問題が発生したのは、UAキャッシュまたはXSLT変換された結果キャッシュのいずれかが原因であると思われます。お時間をいただき、ありがとうございました!
これは私がそれを実装した方法です:
setTimeout(tinyMCE.init({
selector: "textarea.edit_notes",
height: editor_height,
theme: "modern",
menubar: "tools table format view insert edit",
force_br_newlines : false,
force_p_newlines : false,
forced_root_block : '',
//plugins: "fullpage",
valid_elements : '*[*]',
setup: function(ed){
ed.on("init",
function(ed) {
tinyMCE.get('testeditor').setContent($('#testeditor').val());
tinyMCE.execCommand('mceRepaint');
}
);
}
}), 50);
試してみます
私はコードのどこでも機能するより良い解決策を見つけました(そしてsetTimeoutトリックとは異なり、ハックではありません)
tinymce.get('tinymce-element-id').on('init',function(e) {
e.target.setContent('my custom content');
});
tinymce.activeEditor.setContent('<span>some</span> html');
https://www.tinymce.com/docs/api/tinymce/tinymce.editor/#setcontent
このスレッドは私を正しい方向に導いたので、私は自分のソリューションをv4と共有したいと思いました
tinymce.init({
...,
init_instance_callback:function(editor){
editor.setContent(__YOUR_CONTENT__);
}
});
このコードは、ドキュメントが準備完了状態になるとすぐに実行されるため、textareaにコンテンツが含まれる前であっても、tinymceはコンテンツを設定するだけです。テキストエリアのどこでどのようにコンテンツが設定されているかという質問が1つあります。
次に、tinyMCE.init({ .... });
をsetTimeOutに配置できますか。
お役に立てれば。
tinymce.init({
selector: "#txtSummary",
width: '100%',
height: 350,
statusbar: false,
menubar: false,
setup: function (ed) {
ed.on('init', function () {
//Get a value from a hidden variable and set the tiny mce text to it
var signature = $("#hidSignature").val();
this.setContent(signature);
});
},
paste_data_images: true,
plugins: [
"advlist autolink lists link charmap hr anchor pagebreak image",
"searchreplace wordcount visualblocks visualchars code",
"media nonbreaking save table contextmenu directionality"
],
toolbar: "bold italic | alignleft aligncenter alignright alignjustify | bullist numlist | image"
});
TinyMCEにtextarea値を手動で追加して、このようなことを一度行ったことを覚えています。
tinyMCE.init({
...
setup : function(editor) {
editor.setContent($('TEXTAREA#rtf').text());
}
});
セットアップ関数の「editor」パラメーターはTinyMCEインスタンスであり、そこにあることが保証されています。しばらくTinyMCEを使用していませんが、このような問題がたくさんあったことを覚えています。ここで問題を見つけるのはあなただけではありません。
しかし、なぜこのようなものを使用しないのですか? http://www.tinymce.com/wiki.php/Configuration3x:editor_selector
tinyMCE.init({
...
mode : "specific_textareas",
editor_selector : "TEXTAREA#rtf" // CSS Selectors
});
TinyMCEを使用するデフォルトの方法はどれですか。テキストエリアをTinyMCEインスタンスに変換し、入力とTinyMCEの間で値の同期を維持します