2017-10-16 13 views
1

私はtinymce 4.7.1を使用しようとしています(古いtinymce 4.3.1からアップグレードしました)。私は、メソッドのsetContentを呼び出すことにより、プログラムのTinyMCEの内容を設定しようとすると、それは次のエラー投げている:エラーの詳細を見た後setContentの実行中にTinyMceが失敗する

Cannot read property 'parse' of undefined TypeError: Cannot read property 'parse' of undefined 

を、私はTinyMCEのはそれがTinyMCEのです内のクラスをシリアライズしていると期待している実感。このクラスがなければ、このエラーを解析することはできません。

(ここで、私のためにバージョン4.3.1を正常に動作するために使用される)以前のバージョンのシリアル化クラスには、このような依存関係がありませんと比較するとTinyMCEの

else { 
      // Parse and serialize the html 
      if (args.format !== 'raw') { 
      content = new Serializer({ 
       validate: self.validate 
      }, self.schema).serialize(
       self.parser.parse(content, { isRootContent: true }) //this line is throwing error 
      ); 
      } 

からの抜粋です。私は私のコードの作業を取得するために、(デフォルトのパッケージに同梱されていない)以上のプラグインやクラスを追加する必要がある場合

誰かがお勧めすることはできますか?

私の観察:孤立したプロトタイプの例では、私が雲にホストされたtinymceを実行するとうまくいきました。

答えて

0

私はアドバイスして、部分的にこの問題を解決することができました@Michaelによって与えられる。私の場合は2つの問題がありました。

  1. 私は、最新のプラグインやJSファイルを使用するのTinyMCEをアップグレードしていたにもかかわらず、私はまだthemes.min.jsの古いバージョンに言及していた(私はロールアウトできるように、私はTinyMCEをの2差分verionsを維持していますので、これはこのバージョンは、新しいバージョンとの互換性がないため、限定されたページに1つずつアップグレードします)。この結果、tinymceエディタが一貫して初期化されません。私がテーマのソースが初期化エディタ正しく
  2. それを提出固定したら、私のTinyMCEのエディタが正しくロードされなかったと(@Michaelが指摘したように)私はエラーになり内容を設定するためのsetContentメソッドを実行しようとしていたいくつかの事例がありました。だから、私はsetContentの呼び出しを、うまく動作したオブジェクトに公開されたsetupメソッドに移動しました。あなたの応答のための
1

はあなたがsetContent()を使用している方法を示し、いくつかの実行中のコードを示していただけますか? init()メソッドが非同期であるため、エディタが完全に初期化される前に呼び出すことが考えられます。

エディタが完全に初期化されるまで、あなたが待っていることを確認する最も簡単な方法は、エディタが提供するinitイベントに依存することです:

tinymce.init({ 
    selector: '#myTextarea', 
    ... 
    ... 
    setup: function (editor) { 
    editor.on('init', function() { 
     editor.setContent('Using the on init stuff!'); 
    }); 
    } 
}); 
+0

感謝@Michael。私はあなたの提案されたアプローチを試しても、まだ動作しません。流れを壊している何かがあるように見えます。コードについては、問題を調べることなく、問題の根本的な原因を推測することは本当に難しいことを知っています。私の指示の主な実行フローを共有しようとします。 –

関連する問題