Ivo*_*ijk 5 jquery plugins tinymce
我正在为TinyMCE编写一个插件,我想使用jQuery对正在编辑的文档进行一些操作.
我不是在寻找一种方法来使用TinyMCE 和 jQuery(例如选择器上的.tinymce()方法),我知道有解决方案.
基本上我需要在TinyMCE生成的iframe中包含jQuery.
tinymce.dom.ScriptLoader似乎加载在父窗口中,而不是iframe中,所以这不是一个选项.
到目前为止我尝试过的:
有人在TinyMCE插件中使用jQuery吗?怎么样?
更新/解决
感谢Thariama的建议,我能够让它发挥作用.您可以使用显式的tinymce.get()来获取编辑器,也可以使用传递给插件的init()方法的'ed'实例.然而事实证明,在初始阶段,你不能(还)以这种方式访问父节点.您可以在特定的处理程序中执行此操作.
例如
(function($) {
tinymce.create('tinymce.plugins.SOSamplePlugin', {
init: function(ed, url) {
$ = ed.getWin().parent.jQuery; // <- WON'T WORK!
ed.addCommand('soCmd', function(ui, v) {
if(e = ed.selection.getNode()) {
$ = ed.getWin().parent.jQuery; // <- WORKS!
$(e).wrap('<div class="sample" />');
ed.execCommand("mceRepaint");
}
});
ed.addButton('SO', {
title: 'Title',
cmd: 'soCmd',
image: 'somebutton.png'
});
},
getInfo: function() {
return {
longname: 'Example Plugin',
author: 'Ivo',
authorurl: 'http://vanderwijk.info/',
infourl: 'http://vanderwijk.info',
version: '1.0'
};
}
});
tinymce.PluginManager.add('so', tinymce.plugins.SOSamplePlugin);
})($);
Run Code Online (Sandbox Code Playgroud)
这很容易
var editor = tinymce.get('your_editor_id');
Run Code Online (Sandbox Code Playgroud)
jQuery 可以使用
editor.getWin().parent.jQuery
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3765 次 |
| 最近记录: |