wangeditor-team / wangEditor-plugin-upload-attachment

wangEditor upload-attachments plugin
https://www.wangeditor.com/
MIT License
36 stars 16 forks source link

能不能自定义附件上传后返回的html元素?比如修改成a标签 #11

Closed GodRuiCollection closed 2 years ago

GodRuiCollection commented 2 years ago

因为现在的是span标签,没办法像a标签一样点击下载。直接返回成a的话用起来就顺畅多了。

GodRuiCollection commented 2 years ago

<span data-w-e-type="attachment" data-w-e-is-void data-w-e-is-inline data-link="https://xxx.com/aaa/bbb/xxx.zip" data-fileName="xxx.zip">xxx.zip</span> 也就是返回的这个html元素

wangfupeng1988 commented 2 years ago

<a> 标签会和链接功能重复。

你如果想点击下载,给 span[data-w-e-type="attachment"] 加一个 click 事件即可,非常简单。

charescape commented 2 years ago

<a> 标签会和链接功能重复。

你如果想点击下载,给 span[data-w-e-type="attachment"] 加一个 click 事件即可,非常简单。

@wangfupeng1988 这种方式导出 pdf 的话好像不行

wangfupeng1988 commented 2 years ago

@charescape 增加了 click 事件,你就可以在回调函数中获取这个附件所有的信息,剩下的事儿就得你自己处理了。

whalesink commented 2 years ago

@charescape 增加了 click 事件,你就可以在回调函数中获取这个附件所有的信息,剩下的事儿就得你自己处理了。

这个意思是这样?

document
    .querySelectorAll('span[data-w-e-type="attachment"]')
    .forEach((ele) => {
      ele.onclick = (e) => {
        console.log(e.target.dataset);
      };
    });

但是我觉得方式不够好,因为这需要在所有展示富文本的位置执行。 而且,这必须在渲染完成后执行,对于下游组件来说,增加了额外的逻辑才能正常工作。 下载行为最好还是能够在编辑器配置中定义

wangfupeng1988 commented 2 years ago

@whalesink 使用 DOM 事件代理(或事件委托),就不用在渲染完成后执行。

用户嘛,都是想着啥啥都在编辑器处理,自己使用成本越低越好 —— 这想法我理解。 不过,我想说的是,用户以为的低,不一定是真的低。我作为作者,我要权衡所有流程的综合复杂度。如果编辑器真的能轻松处理了,我为何要这样为难你们呢?我也想吧所有事儿都做的简单,但有些事儿它本身不简单。