Closed GodRuiCollection closed 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元素
<a>
标签会和链接功能重复。
你如果想点击下载,给 span[data-w-e-type="attachment"]
加一个 click 事件即可,非常简单。
<a>
标签会和链接功能重复。你如果想点击下载,给
span[data-w-e-type="attachment"]
加一个 click 事件即可,非常简单。
@wangfupeng1988 这种方式导出 pdf 的话好像不行
@charescape 增加了 click 事件,你就可以在回调函数中获取这个附件所有的信息,剩下的事儿就得你自己处理了。
@charescape 增加了 click 事件,你就可以在回调函数中获取这个附件所有的信息,剩下的事儿就得你自己处理了。
这个意思是这样?
document
.querySelectorAll('span[data-w-e-type="attachment"]')
.forEach((ele) => {
ele.onclick = (e) => {
console.log(e.target.dataset);
};
});
但是我觉得方式不够好,因为这需要在所有展示富文本的位置执行。 而且,这必须在渲染完成后执行,对于下游组件来说,增加了额外的逻辑才能正常工作。 下载行为最好还是能够在编辑器配置中定义
@whalesink 使用 DOM 事件代理(或事件委托),就不用在渲染完成后执行。
用户嘛,都是想着啥啥都在编辑器处理,自己使用成本越低越好 —— 这想法我理解。 不过,我想说的是,用户以为的低,不一定是真的低。我作为作者,我要权衡所有流程的综合复杂度。如果编辑器真的能轻松处理了,我为何要这样为难你们呢?我也想吧所有事儿都做的简单,但有些事儿它本身不简单。
因为现在的是span标签,没办法像a标签一样点击下载。直接返回成a的话用起来就顺畅多了。