jquery - 在 TinyMCE 插件中使用 jQuery

标签 jquery plugins tinymce

我正在为 TinyMCE 编写一个插件,我想使用 jQuery 对正在编辑的文档进行一些操作。

我不是在寻找一种将 TinyMCE 与 jQuery 一起使用的方法(例如选择器上的 .tinymce() 方法),我知道有解决方案。

基本上我需要在 TinyMCE 生成的 iframe 中包含 jQuery。

tinymce.dom.ScriptLoader 似乎在父窗口中加载,而不是在 iframe 中,因此这不是一个选项。

到目前为止我已经尝试过:

  • 通过 ScriptLoader 在父级和插件上下文中加载 jquery (后者根本没有效果,前者在错误的上下文中加载它)
  • 访问window.parent.$,它是未定义的(即使它是 加载到父窗口中)
  • RTFM 和谷歌搜索,但没有相关点击。如果插件打开一个对话框,则可以选择加载额外的 javascript,但这也不是我需要的。

有人在 TinyMCE 插件中使用 jQuery 吗?怎么办?

更新/解决方案

多亏了 Thariama 的建议,我才能够让它发挥作用。您可以使用显式的tinymce.get() 来获取编辑器,或者使用传递给插件的init() 方法的“ed”实例。然而事实证明,在 init 阶段本身,您还不能以这种方式访问​​父级。您可以在特定的处理程序中执行此操作。

例如

(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);
})($);

最佳答案

很简单

var editor = tinymce.get('your_editor_id');

可以使用 jQuery 访问

editor.getWin().parent.jQuery

关于jquery - 在 TinyMCE 插件中使用 jQuery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13333228/

相关文章:

javascript - 获取动态创建的文本框的值

javascript - 使用 $.ajax 发布用户输入的文本,如何在 data 属性中传递文本内容?

function - 如何在tinymce中插入自定义函数,

javascript - 获取tinymce中的单词数

"show"动画后的 jQuery 选项卡回调

javascript - 动态添加多个按钮并在 jquery 中添加每个单击处理程序

plugins - 在自定义Gradle插件中对任务进行分组?

c# - 无法更新 TinyMCE 中的文本框

visual-studio-2010 - 适用于 Visual Studio 2010 的 Rockscroll 或 Metalscroll(小 map )

jquery Flexslider 手动控件不起作用