我使用此富文本:https://github.com/bootstrap-wysiwyg/bootstrap3-wysiwyg
它工作正常,但我需要获取wysihtml5编辑器对象来运行一些命令
doc表示我可以使用此代码获取wysihtml5编辑器对象:
var wysihtml5Editor = $('#some-textarea').data("wysihtml5").editor;
wysihtml5Editor.composer.commands.exec("bold");
但是wysihtml5Editor还没有定义
记录$('#some-textarea')。data(“wysihtml5”)打印此:
Wysihtml5 {el: n.fn.init[1], toolbar: n.fn.init[1], editor:undefined}
如何获取编辑器对象?
答案 0 :(得分:3)
我自己找到了答案,但无论如何,感谢Daemedeor和DA。!
在bootstrap3-wysihtml5.js中,createEditor方法没有返回,所以
this.editor = this.createEditor(toolbarOpts);
this.editor未定义
我像这样添加回报
createEditor: function(options) {
options = options || {};
// Add the toolbar to a clone of the options object so multiple instances
// of the WYISYWG don't break because 'toolbar' is already defined
options = $.extend(true, {}, options);
options.toolbar = this.toolbar[0];
return this.initializeEditor(this.el[0], options);
}
一切都好!
答案 1 :(得分:0)
对于遇到这个问题的其他人(以及之前的答案扩展一下),我发现在那里导航wysihtml5编辑器的各种分支有点令人沮丧。
似乎还有许多问题浮出水面,或多或少与操作员问题有关("编辑返回未定义的问题和#34; - 问题)。
首先,对于初学者来说,这个问题似乎与这个特定的分支有关:
https://github.com/bootstrap-wysiwyg/bootstrap3-wysiwyg
关于使用" wysihtml5"获取wysihtml5编辑器对象的问题。数据选择器,文档说明:
您可以像这样访问wysihtml5编辑器对象:
var wysihtml5Editor = $('#some-textarea').data("wysihtml5").editor;
wysihtml5Editor.composer.commands.exec("bold");
为了使其正常工作,您需要确保您引用的文件(无论是 bootstrap3-wysihtml5.min.js 还是 bootstrap3-wysihtml5.all .min.js )包含此特定提交:
正如Daemedeor所说: https://github.com/bootstrap-wysiwyg/bootstrap3-wysiwyg/issues/131 - 该提交未合并到发行版,只包含源。
无论如何,改变这个:
this.initializeEditor(this.el[0], options);
到这个
return this.initializeEditor(this.el[0], options);
可能会帮助你(当然也适合我)。