4

我只是在做一个小网络服务。因此,我正在使用 AJAX 调用并将我的数据附加到我网站上的表格中。在这里,我可以读取和更新现有条目或编写新条目。一切正常。

我希望有可能使用 wysihtml5 编辑器更新已经存在的内容。我已经在我的网站上集成了这个编辑器,我可以在新条目上使用它。这也有效。

但现在现有数据存在问题。当涉及到更新数据的表单时,我希望将现有数据显示为值。在所有输入上一切正常,只是 wysihtml5 不起作用。

我已经知道有一个 iframe,这就是为什么我不能设置 textarea 的值。我搜索了一个解决方案并找到了以下代码(最后一行):

var editor = new wysihtml5.Editor("textareaid", { // id of textarea element
        toolbar: "wysihtml5-toolbar", // id of toolbar element
        parserRules: wysihtml5ParserRules, // defined in parser rules set
});

editor.setValue('Here's the content', true);

通常这应该可以,但没有内容出现,控制台只是告诉我:

错误:wysihtml5.Sandbox:沙盒 iframe 尚未加载

我尝试了超时功能,但没有任何效果。在互联网上搜索似乎也没有其他人有这个问题。我希望你能帮助我,会很棒!

有没有办法设置值?

4

5 回答 5

8

这段代码对我有用

$("#product_details").data("wysihtml5").editor.getValue();// to get the value
$("#product_details").data("wysihtml5").editor.setValue('new content')// to set the value
于 2015-06-21T13:25:44.087 回答
5

我得到了解决方案,下面的代码对我有用

$('#id ~ iframe').contents().find('.wysihtml5-editor').html(my_html);

于 2017-10-04T10:37:26.957 回答
3

这对我有用

$('.wysihtml5-sandbox').contents().find('.wysihtml5-editor').html(my_html);

".wysihtml5-sandbox" 是 iframe 的类名,默认由 wysihtml5 创建。

于 2018-01-23T14:40:39.590 回答
1

我终于让它自己工作了。我只是将 setValue 的第二个参数更改为 false。我不知道为什么,但它的工作原理。

于 2013-12-04T06:19:01.663 回答
0

这段代码对我有用:

 var wysihtml5Editor = $('#text_editor').data("wysihtml5").editor;
 wysihtml5Editor.setValue("<p>foobar</p>", true);
 console.log(wysihtml5Editor.getValue());
于 2015-10-18T17:04:48.047 回答