我应该如何使用tiny_mce_popup.js更新TinyMCE插件的版本4?

我应该如何使用tiny_mce_popup.js更新TinyMCE插件的版本4?,tinymce,Tinymce,TinyMCE4文档目前令人沮丧。我有一个与Ruby on Rails兼容的插入图像插件,但它依赖于不推荐的tiny_mce_popup.js。没有关于如何更新插件以避免使用该文件的信息。TinyMCE 3依靠tiny_mce_popup.js在父级和对话之间交换变量。TinyMCE 4取消了dialog.htm和tiny_mce_popup.js 如果您查看下面的editor.windowManager.open,您可以看到该对话框仅通过JS创建。这样就不需要通过opener访问父变量。如果可

TinyMCE4文档目前令人沮丧。我有一个与Ruby on Rails兼容的插入图像插件,但它依赖于不推荐的tiny_mce_popup.js。没有关于如何更新插件以避免使用该文件的信息。

TinyMCE 3依靠tiny_mce_popup.js在父级和对话之间交换变量。TinyMCE 4取消了dialog.htm和tiny_mce_popup.js

如果您查看下面的
editor.windowManager.open
,您可以看到该对话框仅通过JS创建。这样就不需要通过
opener
访问父变量。如果可以,请坚持使用此模板方法

我选择坚持使用dialog.htm,但我从rails提供了它,因此我不会处理与JS交换表单auth_令牌的问题。如果这样做,请记住插入内容应该来自插件,而不是对话。这是我的简单图像上传程序:

tinymce.PluginManager.add('railsupload', function(editor, url) {
  var win, data, dom = editor.dom

  // Add a button that opens a window
  editor.addButton('railsupload', {
    icon: 'image',
    tooltip: 'Insert image',
    onclick: showDialog
  });

  function showDialog() {
    win = editor.windowManager.open({
      title: 'Insert image',
      name: 'railsupload',
      url: '/attachments/tinymce?owner_type=' + editor.settings.owner_type + '&owner_id=' + editor.settings.owner_id,
      width: 200,
      height: 220,
      bodyType: 'tabpanel',
      buttons: [{
        text: 'Insert',
        onclick: submitForm
      }]
    });
  }

  function submitForm() {
    editor.insertContent("<img src=\"" + self.frames[1].document.img_url + "\" />")
    win.close()
  }
});
tinymce.PluginManager.add('railsupload',函数(编辑器,url){
var win,data,dom=editor.dom
//添加打开窗口的按钮
editor.addButton('railsupload'{
图标:“图像”,
工具提示:“插入图像”,
onclick:showDialog
});
函数showDialog(){
win=editor.windowManager.open({
标题:“插入图像”,
名称:“railsupload”,
url:'/attachments/tinymce?owner_type='+editor.settings.owner_type+'&owner_id='+editor.settings.owner_id,
宽度:200,
身高:220,
bodyType:“选项卡面板”,
按钮:[{
文本:“插入”,
onclick:submitForm
}]
});
}
函数submitForm(){
编辑器.插入内容(“”)
赢
}
});
您需要一个rails附件控制器,并且需要通过url传递附件init参数。如果我在gem中构建它,它将与兼容,我将更新这个答案

更新:TinyMCE现在有了关于从3.x迁移的页面:

TinyMCE 4不支持旧的,而支持新的,新的具有可以返回元数据的优点

tinymce.init({
选择器:“textarea.tinymce”,
文件选择器回调:函数(回调、值、元){
myFilePicker(回调、值、元);
},
插件:[“链接图像”],
工具栏:“撤消重做|样式选择|粗体斜体|对齐左对齐中心对齐右对齐对齐对齐|粗体numlist outdent缩进|链接图像”
});
函数myFilePicker(回调、值、元){
tinymce.activeEditor.windowManager.open({
标题:“文件管理器”,
url:'/Site/FileManager?type='+meta.filetype,
宽度:650,
身高:550,
}, {
oninsert:函数(url){
回调(url);
}
});
}
在文件浏览器中,单击超链接或图像时,将文件返回到您调用的主页面
mySubmit('/images/file_123.jpg')

函数mySubmit(url){
top.tinymce.activeEditor.windowManager.getParams().oninsert(url);
top.tinymce.activeEditor.windowManager.close();
}

省去麻烦,等到tinymce 4离开betaIt,如果你用图像编写一些教程或详细说明,那就好了。因为原始信息表单文档太短。非常感谢。