我无法弄清楚如何在我的网页上初始化tinymce
的两个实例。
我已经尝试过this question的答案,但没有运气。如果在开始初始化第二个(i)之前需要一些时间来完成初始化第一个(io),我是否需要使用超时?
var io = {
selector:"#auth_info_intro textarea",
...,
setup:function(ed){
ed.on("init",function(e){
tinyMCE.activeEditor.setContent(obj.INFO.INTRO.TEXT);
});
}
};
var co = {
selector:"#auth_info_conclude textarea",
...,
setup:function(ed){
ed.on("init",function(e){
tinyMCE.activeEditor.setContent(obj.INFO.CONCLUDE.TEXT);
});
}
};
tinymce.init(io);
tinymce.init(co);
以上引发Uncaught TypeError: Cannot read property 'body' of undefined
。
我错过了什么?
答案 0 :(得分:1)
可能是因为它指向丢失的物体。尝试将您的选择器#auth_info_intro textarea
更改为textarea#auth_info_intro
和#auth_info_conclude textarea
,更改为textarea#auth_info_conclude
答案 1 :(得分:0)
(没有足够的声誉为阿尔伯特以色列添加评论)。修复选择器后,代码可以正常工作。这是jsFiddle。
<textarea id="auth_info_intro"></textarea>
<textarea id="auth_info_conclude"></textarea>
<script>
var obj = {
INFO: {
INTRO: {
TEXT: "Hello World!"
},
CONCLUDE: {
TEXT: "Goodbye World!"
}
}
};
var io = {
selector:"textarea#auth_info_intro",
setup:function(ed){
ed.on("init",function(e){
tinyMCE.activeEditor.setContent(obj.INFO.INTRO.TEXT);
});
}
};
var co = {
selector:"textarea#auth_info_conclude",
setup:function(ed){
ed.on("init",function(e){
tinyMCE.activeEditor.setContent(obj.INFO.CONCLUDE.TEXT);
});
}
};
tinymce.init(io);
tinymce.init(co);
</script>
答案 2 :(得分:0)
显然,初始化第一个实例需要一些时间,因此我在第一个实例的初始化对象的setup参数中设置了超时,而不是仅仅立即尝试初始化第二个实例。这很有效:
var io = {};
io.selector = "textarea[name=intro]";
io.setup = function(ed){
ed.on("init",function(e){
tinyMCE.activeEditor.setContent(obj.INFO.INTRO.TEXT);
setTimeout(function(){
var co = {};
co.selector = "textarea[name=conclude]";
co.setup = function(ed){
ed.on("init",function(e){tinyMCE.activeEditor.setContent(obj.INFO.CONCLUDE.TEXT);});
}
tinymce.init(co);
},1000);
});
tinymce.init(io);