From 77616468a47ea6716118ae3226826b78c50202ee Mon Sep 17 00:00:00 2001 From: jaywcjlove <398188662@qq.com> Date: Sun, 4 Aug 2024 23:34:33 +0800 Subject: [PATCH] fix: fix copy issue. #44 --- website/src/commands/copy.tsx | 26 ++++++++++++++++---------- 1 file changed, 16 insertions(+), 10 deletions(-) diff --git a/website/src/commands/copy.tsx b/website/src/commands/copy.tsx index 2310b17..08c5f61 100644 --- a/website/src/commands/copy.tsx +++ b/website/src/commands/copy.tsx @@ -13,16 +13,22 @@ const Button = styled.button` const CopyView: React.FC<{ command: ICommand; editorProps: IMarkdownEditor & ToolBarProps }> = (props) => { const { editorProps } = props; const handleClick = () => { - const dom = editorProps.preview.current; - dom?.focus(); - window.getSelection()?.removeAllRanges(); - let range = document.createRange(); - range.setStartBefore(dom?.firstChild!); - range.setEndAfter(dom?.lastChild!); - window.getSelection()?.addRange(range); - document.execCommand(`copy`); - window.getSelection()?.removeAllRanges(); - toast.success(
复制成功!去公众号编辑器复制吧!
); + const dom: HTMLDivElement | null = editorProps.preview.current; + if (!dom) { + toast.error(
dom is null
); + return; + } + dom.focus(); + const htmlContent = dom.innerHTML; + navigator.clipboard + .writeText(htmlContent) + .then(() => { + toast.success(
复制成功!去公众号编辑器粘贴吧!
); + }) + .catch((err) => { + toast.error(
{JSON.stringify(err)}
); + console.error('Failed to copy: ', err); + }); }; return (