我正在尝试为 TinyMCE 创建一个简单的插件,它可以将值传回以插入到编辑器中。由于我的要求,我需要使用自定义外观窗口。
我试图坚持接近教程但是我找不到从 onsubmit 回调中的插件获取数据的方法。
这是一个简化的 plugin.js
tinymce.PluginManager.add('imageselect', function(editor, url) {
editor.addButton('imageselect', {
text: 'Add Image',
onclick: function() {
editor.windowManager.open({
id: "imageselect",
title: 'Add New Image',
url: '/photos/thumbs',
width: 800,
height: 600,
buttons: [{
text: 'Select Image',
onclick: 'submit'
}],
onsubmit: function(e) {
editor.insertContent(e.data.selected_image);
}
});
}
});
});
我还在我的应用程序中添加了一个路由和视图来呈现自定义窗口。它显示得很好。
<div id="thumb_container">
<input type="textbox" name="selected_image" value="foobar" />
<% @photos.each do |p| %>
<div style="float: left; margin: 1em;">
<%= image_tag p.image.url(:thumb), class: "thumb img-polaroid" %> <br />
</div>
<% end %>
</div>
我的想法是在这个视图中编写一些 javascript 来填充名为 selected_image 的文本框的值。然后,我想在此窗口关闭时获取该值并将其附加到编辑器。
问题是当编辑器关闭并且我的 onsubmit 回调被执行时 e.data.selected_image 评估为未定义。
我缺少哪条接线才能使其正常工作?