如果textarea
已经有attr("readonly")
答案 0 :(得分:14)
更通用的解决方案可能是
tinyMCE.init({
...
setup: function(ed) {
if($('#'+ed.id).attr('readonly'))
ed.settings.readonly = true;
}
});
这将适用于所有textareas而无需指定任何ID。此外,它实际上将编辑器设置为只读模式,而不仅仅是阻止编辑。
答案 1 :(得分:4)
如果您有以下textarea
<textarea id="my_textarea_id" readonly="readonly">Some content here.</textarea>
您可以保存对变量具有只读属性的知识:
var readonly = $("textarea#my_textarea_id").attr("readonly") ? 1 : 0;
现在是tinymce init函数。我们选择模式none
以便稍后启动编辑器。
tinyMCE.init({
theme : "advanced",
mode: 'none',
readonly : readonly,
...
});
在这里,您可以使用textarea的id
初始化您的编辑器实例tinyMCE.execCommand("mceAddControl", true, "my_textarea_id");
您的编辑器实例将初始化为只读。
答案 2 :(得分:2)
如果不希望将tinyMCE应用于只读字段,请使用class="readonly"
然后
tinyMCE.init({
...
editor_deselector: "readonly"
});
具有只读类的textareas将被忽略
答案 3 :(得分:0)
如果你设置了tinyMce的readOnly模式,你应该使用tinyMCE API。 所以你可以设置只读:
tinyMCE.init({
...
theme : "advanced",
readonly : 1
});
如果你只想为textarea设置值“readonly”,那么请注意tinyMce有这个字段的自己的包装器,而native字段(来自html) - 设置为隐藏字段,所以它是无用的设置任何一个属性
答案 4 :(得分:0)
我有几个小小的mce,其中一些有class =&#34; nonEditableMCE&#34;有些人有class =&#34; editableMCE&#34;。如果是这种情况,你可以有两个inits,这是有效的。当Id使用类选择器是动态的时候会更简单。
tinymce.init({
selector: ".nonEditableMCE",
height: 200,
statusbar: false,
readonly : 1
});
tinymce.init({
selector: ".editableMCE",
height: 200,
statusbar: false,
readonly: 0
});