gpt4 book ai didi

jquery - 在 TinyMCE 插件中使用 jQuery

转载 作者:行者123 更新时间:2023-11-30 23:44:38 41 4
gpt4 key购买 nike

我正在为 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/

41 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com