【问题标题】:Observe changes in TinyMCE from Dart从 Dart 观察 TinyMCE 的变化
【发布时间】:2013-06-27 16:57:47
【问题描述】:

根据TinyMCE API,以下JavaScript代码观察TinyMCE编辑器的变化:

tinyMCE.init({
   ...
   setup : function(ed) {
          ed.onChange.add(function(ed, l) {
                  console.debug('Editor contents was modified. Contents: ' + l.content);
          });
   }
});

但是,我无法使用 js 库从 Dart 运行此代码。感谢您的帮助。

更新: 上面的JS代码有问题。或者,我在here 中找到了这个工作代码:

var ed = new tinymce.Editor('textarea_id', { 
  init_setting_item: 1,
}, tinymce.EditorManager);

ed.on('change', function(e) {
  var content = ed.getContent();
  console.log(content);
});

ed.render();

我仍然需要帮助从 Dart 运行代码。并且最好将其结果存储在 Dart 变量中以供后续处理。

【问题讨论】:

    标签: tinymce dart dart-js-interop


    【解决方案1】:

    这是从 Dart 调用的相同代码:

    var ed = new js.Proxy(js.context.tinymce.Editor, 'textarea_id', js.map({ 
      'init_setting_item': 1
    }), js.context.tinymce.EditorManager);
    
    js.retain(ed); // retain allows to use 'ed' in the following callback
    ed.on('change', new js.Callback.many((e) {
      var content = ed.getContent();
      window.console.log(content);
    }));
    
    ed.render();
    

    【讨论】:

    • 我现在没有错误。但是没有任何东西输出到控制台。谢谢。
    • 我刚刚检查过了。等效的 js 代码不起作用。可惜我不懂js,所以没能找到问题的根源。
    • 此 JS 代码有效:var ed = new tinymce.Editor('writepad', {init_setting_item: 1,}, tinymce.EditorManager); ed.on('change', function(e) {var content = ed.getContent(); console.log(content);}); ed.render();
    • 亚历山大。现在我在 Dartium 控制台中收到此错误:未捕获的代理 js-ref-7 已失效。 f 触发 tinymce.min.js:8 a.add tinymce.min.js:6 o tinymce.min.js:6(匿名函数) tinymce.min.js:6 触发 tinymce.min.js:8(匿名函数) tinymce.min.js:8 i tinymce.min.js:2 m tinymce.min.js:2
    • 我在上面的最后一行之前添加了 js.retain(ed); 并且代码有效。感谢亚历山大的帮助和耐心。最好的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-10-25
    • 2012-08-05
    • 2010-11-09
    • 2018-02-26
    • 2015-09-13
    • 1970-01-01
    • 2020-07-29
    相关资源
    最近更新 更多