9

javascript wysiwyg editor wysiHTML5を見つけました。

エディターに要素を追加しようとして<a href=...>いるか、プログラムで太字をオンにしようとしています。

私のコードは次のとおりです。

var editor = new wysihtml5.Editor("textarea", {
    toolbar:      "toolbar",
    stylesheets:  "css/wysihtml5.css",
    parserRules:  wysihtml5ParserRules
});

editor.observe("load", function() {
    editor.composer.commands.exec("bold");
});

私は何か間違ったことをしていますか?

4

3 に答える 3

15

実際にはありませんが、テキストエリア (iframe) がフォーカスされていることを確認する必要があります。onの代わりに使用してみてくださいobserve。これは、insertHTML で機能するサンプル コードです。

editor.on("load", function() {
  editor.focus();
  editor.composer.commands.exec("insertHTML","<a href=....>text</a>");
});
于 2012-05-27T01:08:04.977 に答える
8

mateusmaso のソリューションでは、次のエラーが発生しました。

NS_ERROR_FAILURE: コンポーネントがエラー コードを返しました: 0x80004005 (NS_ERROR_FAILURE) [nsIDOMHTMLDocument.execCommand]
[このエラーでブレーク]   

Object.defineProperty(オブジェクト、プロパティ、構成);

そこで、さらに調査したところ、次の解決策が見つかりました。これは (IMO) より問題ないようです。


var value = 'whatever you want to set';
// The jQuery reference to the textarea
var $ta = $('textarea#your-selector');
// The reference to the wysihtml5 editor - everything is contained within it 
var w5ref = $ta.data('wysihtml5');
// Check if you have it
if(w5ref){
   // if yes it's really an enhanced / wysihtml5ed textarea 
   // and use its setter
   w5ref.editor.setValue(value);
} else {
   // otherwise just simply populate the textarea as you normally would
   $ta.html(value);
}

ソース

于 2012-12-13T21:16:35.463 に答える
2

以前に使用してエディターをインスタンス化したと仮定します$('#textarea-id').wysihtml5()

$('#textarea-id').data("wysihtml5").editor.setValue('new content');

フォント

于 2016-10-13T17:00:52.630 に答える