Skip to content
This repository has been archived by the owner on Aug 22, 2023. It is now read-only.

如何通过registerUI来添加自定义按钮 #77

Closed
Link-Fight opened this issue Nov 28, 2018 · 6 comments
Closed

如何通过registerUI来添加自定义按钮 #77

Link-Fight opened this issue Nov 28, 2018 · 6 comments

Comments

@Link-Fight
Copy link

首选,已使用百度的ueditor通过提供的registerUI来添加自定义的按钮。

window.UE.registerUI('Button', function (editor, uiName) {
    return new window.UE.ui.Button({
          // do the jod
     })
})

ueditor上的相关文档

而到了neditor,方法失败且报错。
通过看到源代码,同是提供的registerUI(uiName,fn,index,editorId)方法,

  • ueditor中注册的uiName是用UE._customizeUI来放置的,然后遍历这个对象来生成外部定制的UI.
  • neditor中注册的uiName使用baidu.editor.ui来放置,而里面会有内部内置的UI,例如baidu.editor.ui.ColorPicker,baidu.editor.ui.Button,baidu.editor.ui.Toolbar等等内部的UI,而按照我之前的写法,baidu.editor.ui.Button会被window.UE.registerUI('Button',fn)给重置了,将导致内部错误。
  • 从源代码中看来,neditor是错误实现了registerUI方法,应该采用ueditor的实现方式。
@Link-Fight Link-Fight changed the title 如果通过registerUI来添加自定义按钮 如何通过registerUI来添加自定义按钮 Nov 28, 2018
@zuohuadong
Copy link
Member

目前由于图标问题,自定义会比较困难。
下个版本会解决,如果想一起开发的话,欢迎加入Q群:257753500

@zuohuadong
Copy link
Member

已经在此做了说明: #81

@Link-Fight
Copy link
Author

好的!明白。

  • 我现在是直接修改了源代码,把原来的实现搬运过来,而图标的问题,
  • 我是通过样式覆盖来解决的。
  • 在通过new window.UE.ui.Button来注册按钮时候,有个参数name。通过观察,而在生成自定义按钮的时候,其按钮的classlist中会有个`edui-for-${name}的属性',所以通过指定样式就可以定制到需要的图标了。
.edui-for-addProduct .edui-notadd {
  background-image: url("../assets/addProduct.svg") !important;
  background-size: 80%;
  background-position: center;
  background-repeat: no-repeat;
}

image

@hiahiahiakeke
Copy link

可以先在neditor.config.js文件中修改toolbars添加按钮,然后再使用registerUI(uiName,fn,index,editorId)方法

@Greasen
Copy link

Greasen commented Feb 23, 2022

["neditor.config.js", "neditor.all.js"]
const editorConfig = {
UEDITOR_HOME_URL: '/NEditor/',
}; // registerUI 二次开发图标无法显示

["ueditor.config.js", "ueditor.all.js"]
const editorConfig = {
UEDITOR_HOME_URL: '/UEditor/',
}; // registerUI 二次开发图标可以显示

使用 UEditor 图标可以正常显示,使用 NEditor缺无法正常显示,这是为什么?是否需要做什么样的操作?

@Greasen
Copy link

Greasen commented Feb 23, 2022

neditor.all.js: 32463
//接受外部定制的UI

  utils.each(extraUIs, function(obj) {
    console.log(obj, 'ooo');
    toolbarUi.add(obj.itemUI, obj.index);
  });

// utils.each 无法准确的循环出对象的全部元素而导致的自定义 UI

是否参考 ueditor.all.js: 28991 进行一波升级?

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants