从TinyMCE插件访问数据
Accessing Data From TinyMCE Plugin
我正在尝试为TinyMCE创建一个简单的插件,它可以将一个值传递回编辑器中进行插入。由于我的要求,我需要使用一个自定义外观的窗口。
我试着接近教程,但我找不到从onsubmit回调中的插件获取数据的方法。
这是一个简化的插件.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的计算结果为undefined。
我缺了哪根电线才能正常工作?
所以我对此进行了进一步的研究,并希望报告我的解决方案,以防以后有人遇到同样的问题。
我需要做的是在我的自定义窗口中添加一些TinyMCE javascript。然后我添加了一个事件处理程序来更新编辑器。
下面的代码片段可以用于从我的自定义页面中访问编辑器。
window.parent.tinyMCE.activeEditor.execCommand( 'mceInsertContent', 0, selected_image );
tinyMCEPopup.close();
我不完全确定这是否是处理事情的最佳方式,在接受我自己的答案之前,我会对其他解决方案和建议持开放态度。
相关文章:
- AngularJS-需要在index.html页面中访问来自服务的数据
- 如何使用Wordpress'RESTApi访问本地主机上的数据
- 访问令牌和响应数据
- 如何访问高图表工具提示中的任何特定数据
- 将JSON传递给Jade,并使用相同的数据进行API访问
- 访问Protractor/E2E测试中的$http数据(AngularJS)
- 使用Angular.js访问php数组数据
- 访问Twilio短信元数据
- 访问通过XHR.onreadystatechange回调中的XHR.send(data)发送的数据
- Codeigniter Jquery Ajax,Can't将控制器中的数据访问回html表单
- JavaScript IE 从 json 文件中读取数据 访问被拒绝
- 将twitter api1.0迁移到1.1 json数据访问问题
- 管理数据访问/用户权限
- Javascript json数据访问行和字段
- Javascript是否实现了类似SQL的数据访问
- 在猫鼬之上创建一个额外的数据访问层
- 角度.js数据访问器
- JavaScript数据访问设计
- 在bogart中使用承诺数据访问
- 在初始.ajax调用之外使用JSON数据-访问剩余的JSON数据