wujie icon indicating copy to clipboard operation
wujie copied to clipboard

wangEditor处理方案

Open ALLLRON opened this issue 1 year ago • 3 comments

const plugins = [
  // wangEditor-降级开启模式下
  {
    jsBeforeLoaders: [
      {
        callback: (appWindow) => {
          Object.defineProperties(appWindow, {
            Selection: {
              get: () => appWindow.__WUJIE.document.defaultView.Selection,
            },
            DataTransfer: {
              get: () => appWindow.__WUJIE.document.defaultView.DataTransfer,
            },
          });
        },
      },
    ],
    jsLoader: (code) => {
      return code
        .replace("!!t&&e instanceof t.Node", " e !=null&&typeof e.nodeType === 'number'") 
        .replace("n.isCollapsed", "n.baseOffset === n.focusOffset")
        .replace("n.collapsed", "n.startOffset === n.endOffset");
    },
  },
];

export default plugins;

版本: "vue": "^2.6.11", "@wangeditor/editor": "^5.1.23", "@wangeditor/editor-for-vue": "^1.0.2"


上面这个方案只适用降级的情况下,非降级模式下不适用

ALLLRON avatar Jun 14 '23 01:06 ALLLRON

非降级模式: 在wangEditor中有看到这位的iframe改造方案微前端iframe兼容

主要还是判断当前是否在wujie下,wangEditor对于hasShadowRoot的判断在wujie中不准确,比较便捷的就是用wujie来进行判断

   jsLoader: (code) => {
      return (
        code.replace(
            "window.document.activeElement&&window.document.activeElement.shadowRoot",
            "((window.document.activeElement && window.document.activeElement.shadowRoot) || window.$wujie )"
          )
          .replace("!!t&&e instanceof t.Node", " e !=null&&typeof e.nodeType === 'number'")
      );
    },

ALLLRON avatar Jun 26 '23 07:06 ALLLRON

@ALLLRON 光标会消失,偶尔错位。

ZhangYC193 avatar May 07 '24 09:05 ZhangYC193

非降级模式: 在wangEditor中有看到这位的iframe改造方案微前端iframe兼容

主要还是判断当前是否在wujie下,wangEditor对于hasShadowRoot的判断在wujie中不准确,比较便捷的就是用wujie来进行判断

   jsLoader: (code) => {
      return (
        code.replace(
            "window.document.activeElement&&window.document.activeElement.shadowRoot",
            "((window.document.activeElement && window.document.activeElement.shadowRoot) || window.$wujie )"
          )
          .replace("!!t&&e instanceof t.Node", " e !=null&&typeof e.nodeType === 'number'")
      );
    },

请问大佬,子应用引入了wangEditor,如何解决?

ZChMing8 avatar Aug 06 '24 08:08 ZChMing8