wysihtml5命令是未定义的

时间:2012-08-27 17:25:21

标签: javascript wysihtml5 bootstrap-wysihtml5

当我加载wysithml5引导程序编辑器时,此命令或wysihtml5引导程序支持的任何命令都不起作用。

当我提醒editor.composer.commands时,它会显示为未定义。

我该怎么做才能解决这个问题? jQuery加载了jQuery-UI,我不知道是否有帮助。

$(document).ready(function() {
    $('#content').wysihtml5();
    var editor = $('#content').wysihtml5().data("wysihtml5").editor;
    editor.currentView.element.focus();
    editor.composer.commands.exec('insertHTML' , 'Something');`
});

参考编辑:https://github.com/xing/wysihtml5

1 个答案:

答案 0 :(得分:0)

在编辑器实例化并加载到页面后,很快就以编程方式使用命令时出现此问题。请考虑以下代码:

<textarea id="wysihtml5-textarea" rows="3" autofocus></textarea>

我通过使用window.setTimeout加载编辑器后允许一段时间来解决它。下面的代码是一个使用&#39; insertImage&#39;命令:

$(function () {
   var editorEle = $('#wysihtml5-textarea');
   var editorToolbarEle = $('#wysihtml5-toolbar');
   var editor = new wysihtml5.Editor(editorEle.prop('id'), {});

   window.setTimeout(function() {
      editor.focus();
      editor.composer.commands.exec("insertImage", { src: 'foo.png', alt: "image.." });
   }, 200);
});

您可以看到此代码正在运行并使用以下JSFiddle进行测试(删除setTimeout以查看发生的错误):

http://jsfiddle.net/wv0fbsew/

使用分叉版本的编辑器(wysihtml5x)时遇到了这个问题。它不是这个问题中提到的Bootstrap版本,也不是我使用的版本,但问题是相同的。