how to make tinymce input read only - javascript

I want to make tinymce input to read only. i have tried with the below code. Please help me with this issue.
tinymce.init({
selector: '#deliberations',
menubar: false,
readonly: true,
branding: false,
height: 100,
max_height: 400,
theme: 'modern',
toolbar: false,
toolbar_items_size: 'small',
plugins: ['advlist autolink lists link image charmap print preview hr anchor pagebreak','searchreplace wordcount visualblocks visualchars code fullscreen','insertdatetime media nonbreaking save table contextmenu directionality','emoticons template paste textcolor colorpicker textpattern imagetools codesample toc help'],
toolbar1: 'insert | undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image print preview media | forecolor backcolor emoticons | fullscreen | table',
image_advtab: true,
templates: [{
title: 'Test template 1',
content: 'Test 1'
},
{
title: 'Test template 2',
content: 'Test 2'
}
],
content_css: [
]
});

If you are using version 4.x, remove the readonly: true option and try
setup: function (editor) {
editor.setMode("readonly")
},
http://fiddle.tinymce.com/Lugaab/2

As stated in the TinyMCE docs https://www.tinymce.com/docs-3x/reference/configuration/Configuration3x#readonly/ the readonly attribute should be set to '1' not to 'true'.
tinymce.init({
selector: '#deliberations',
menubar: false,
readonly: 1,
branding: false,
height: 100,
max_height: 400,
theme: 'modern',
toolbar: false,
toolbar_items_size: 'small',
plugins: ['advlist autolink lists link image charmap print preview hr anchor pagebreak','searchreplace wordcount visualblocks visualchars code fullscreen','insertdatetime media nonbreaking save table contextmenu directionality','emoticons template paste textcolor colorpicker textpattern imagetools codesample toc help'],
toolbar1: 'insert | undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image print preview media | forecolor backcolor emoticons | fullscreen | table',
image_advtab: true,
templates: [{
title: 'Test template 1',
content: 'Test 1'
},
{
title: 'Test template 2',
content: 'Test 2'
}
],
content_css: [
]
});

Related

TinyMCE print plugin

I'm trying to add print plugin to my TinyMCE widget, but it doesn't work :
var option_tinymce = {
script_url : '/ui/js/tinymce/tinymce.min.js',
plugins: "code autosave insertdatetime textcolor print",
toolbar1: "print code | bold italic underline strikethrough | alignleft aligncenter alignright alignjustify | outdent indent | undo redo | removeformat | forecolor backcolor | formatselect | restoredraft",
menubar: false,
toolbar_items_size: 'small',
language: 'fr_FR',
setup: function(editor) {
editor.on('change', function(e) {
$(editor.formElement).find('[name="modification_form"]').val("Yes");
});
},
skin: 'pvx_light',
content_css: "/ui/css/style.css, /ui/css/style_tiny.css",
schema: "html5",
autosave_restore_when_empty: false,
resize : 'both'
}

TinyMCE Editor dosen't have all the features

I used TinyMCE Editor for my text box in my web site, I followed this https://www.tinymce.com/docs/get-started/first-steps/ and it works fine but the problem is that I don't have all the features. mine is like the image below
but here is what I Expect
Here are the full features (except premium plugins) you can use: https://www.tinymce.com/docs/demo/full-featured/. You may want to modify menubar, plugins and toolbar for your need.
tinymce.init({
selector: 'textarea',
height: 500,
theme: 'modern',
plugins: [
'advlist autolink lists link image charmap print preview hr anchor pagebreak',
'searchreplace wordcount visualblocks visualchars code fullscreen',
'insertdatetime media nonbreaking save table contextmenu directionality',
'emoticons template paste textcolor colorpicker textpattern imagetools codesample toc'
],
toolbar1: 'undo redo | insert | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image',
toolbar2: 'print preview media | forecolor backcolor emoticons | codesample',
image_advtab: true,
templates: [
{ title: 'Test template 1', content: 'Test 1' },
{ title: 'Test template 2', content: 'Test 2' }
],
content_css: [
'//fonts.googleapis.com/css?family=Lato:300,300i,400,400i',
'//www.tinymce.com/css/codepen.min.css'
]
});

Add properties to TinyMce after init()?

Consider the initialization:
function initMyTinymce() {
tinymce.init({
selector: $(this).attr("id"),
directionality: "ltr",
});
}
Is it possible to add properties to tinyMCE after init()?
For example:
plugins: "link,code,textcolor",
relative_urls: false,
convert_urls: false,
remove_script_host: false
I'm using TinyMce 4.1.6 (2014-10-08).
Yes, this is possible, but parameters that get read on initialisation only won't have an impact if they get set later on. Example: To change the parameter
plugins changes nothing because the tinymce UI has been rendered already.
To set a paramter after initialization use:
editor.settings.my_setting = 'abcd',
function Tiny_readonly(id, action) {
tinymce.get(id).remove();
if (action == 0) {
tinymce.init({
selector: 'textarea#' + id,
skin: 'dark',
height: 200,
readonly: true,
toolbar: false,
menubar: false,
statusbar: false,
init_instance_callback: function(editor) {},
});
} else {
tinymce.init({
selector: 'textarea#' + id,
height: 250,
menubar: false,
skin: 'default',
plugins: [
'advlist autolink lists link charmap print preview anchor',
'searchreplace visualblocks code fullscreen',
'insertdatetime media table paste code help wordcount'
],
toolbar: 'undo redo | formatselect | ' +
'bold italic backcolor | alignleft aligncenter ' +
'alignright alignjustify | bullist numlist outdent indent | ' +
'removeformat | table',
content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:14px }'
});
}
}

tinyMCE get editor returns null

I initialize 2 tinyMCE editor on 2 textarea with different id :
var variable_array = {id:'cName', test:'mon test'};
tinymce.init({
selector: "#model_editor",
entity_encoding : "raw",
encoding: "UTF-8",
theme: "modern",
height: "500px",
width: "100%",
variables_list : variable_array,
plugins: [
"advlist autolink lists link image charmap print preview hr anchor pagebreak",
"searchreplace wordcount visualblocks visualchars code fullscreen",
"insertdatetime media nonbreaking save table contextmenu directionality",
"emoticons template paste textcolor colorpicker textpattern modelinsert"
],
toolbar1: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image print preview media | forecolor backcolor emoticons",
toolbar2: "variable_insert | question_insert",
image_advtab: true,
templates: [
{title: 'Test template 1', content: 'Test 1'},
{title: 'Test template 2', content: 'Test 2'}
]
});
tinymce.init({
selector: "#headerfooter_editor",
entity_encoding : "raw",
encoding: "UTF-8",
theme: "modern",
height: "500px",
width: "100%",
variables_list : variable_array,
plugins: [
"advlist autolink lists link image charmap print preview hr anchor pagebreak",
"searchreplace wordcount visualblocks visualchars code fullscreen",
"insertdatetime media nonbreaking save table contextmenu directionality",
"emoticons template paste textcolor colorpicker textpattern modelinsert"
],
toolbar1: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image print preview media | forecolor backcolor emoticons",
toolbar2: "variable_insert | question_insert",
image_advtab: true,
init_instance_callback : "mceInitInstance",
templates: [
{title: 'Test template 1', content: 'Test 1'},
{title: 'Test template 2', content: 'Test 2'}
]
});
Both editors init correctly.
Then in order to set different content on each, I try to get the editor instance object id :
var editor_id = tinyMCE.get('#headerfooter_editor');
console.log(editor_id);
It returns null :/
I try also to get in the console the result of the callback of the second init :
function mceInitInstance(inst) {
console.log("Editor: " + inst.editorId + " is now initialized.");
And it returns : Editor: undefined is now initialized.
I want to do the following :
tinyMCE.get('#headerfooter_editor').setContent(data.content);
but of course it returns an error : Uncaught TypeError: Cannot read property 'setContent' of null
I don't understand what's wrong and why I can't get the editor instance id :/
Your editors should be available using tinymce.get('model_editor') and tinymce.get('headerfooter_editor').
Hint: tinymce.editors holds all editor instances that have been initialized.
You can loop through that array to get them all:
for (var i = 0; i < tinymce.editors.length; i++)
{
console.log("Editor id:", tinymce.editors[i].id);
}
Instead of:
tinyMCE.get('#headerfooter_editor').setContent(data.content);
use
tinyMCE.get('headerfooter_editor').setContent(data.content);
remove #
I got the same problem.
The error message was:
TypeError: tinymce.get(...) is null
But my error was that I tried to tinymce.get(...) before initiating tinymce editor.
tinymce.init({selector: "#mytextarea"})

how to enable font family and color options in tinymce editor?

I am using a tinymce editor on my cms its having a normal text toolbar where it has bold,italic,underline, and justify option but it dont have the font family change option and not even color change. how to enable that?
i have done this in this way
tinyMCE.init({
theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect",
theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,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,|,print,|,ltr,rtl,|,fullscreen",
)};
for the upgraded version here is the full featured example
tinymce.init({
selector: 'textarea',
height: 500,
theme: 'modern',
plugins: ['advlist autolink lists link image charmap print preview hr anchor pagebreak',
'searchreplace wordcount visualblocks visualchars code fullscreen',
'insertdatetime media nonbreaking save table contextmenu directionality',
'emoticons template paste textcolor colorpicker textpattern imagetools'
],
toolbar1: 'insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image',
toolbar2: 'print preview media | forecolor backcolor emoticons',
image_advtab: true,
templates: [
{ title: 'Test template 1', content: 'Test 1' },
{ title: 'Test template 2', content: 'Test 2' }
],
content_css: ['//fast.fonts.net/cssapi/e6dc9b99-64fe-4292-ad98-6974f93cd2a2.css',
'//www.tinymce.com/css/codepen.min.css'
]
});
for more reference visit https://www.tinymce.com/docs/demo/full-featured/
In my old version of TinyMCE 4.0.10 font and color controls are added like so to tinymce.init in addition to your other init toolbar and plugin options:
toolbar: "styleselect fontselect fontsizeselect | forecolor backcolor",
plugins: "textcolor"

Categories

Resources