reactjs - 使用 ReactJS 将事件浏览器的 url 复制到剪贴板

标签 reactjs

我正在尝试编写一个函数,以便在单击链接时可以将当前浏览器的网址复制到剪贴板。我仍在尝试理解这段代码,此时我不知道如何创建输入,将其值设置为当前文档的 URL,选择其内容并执行复制,因为我知道这是破解的方法它。现在,当单击文本时,我收到错误:无法读取 null 的属性“选择”...任何提示将不胜感激。

export function Copy() {
    const [copySuccess, setCopySuccess] = useState("")
    const textAreaRef = useRef(null)

    function copyToClip(e) {
        //navigator.clipboard.writeText(e.target.getAttribute("href"))
        textAreaRef.current.select()
        document.execCommand("copy")
        setCopySuccess("Copied")
    }

    return (
        <>
            {document.queryCommandSupported("copy") && (
                <Text onClick={copyToClip}>
                    Copy
                </Text>
            )}
        </>
    )
}

最佳答案

这个问题实际上由两个组成:

  1. How to get the current URL in js?
const url = location.href;
  • How to copy text to clipboard using js? :
  • navigator.clipboard.writeText(url);
    

    最后:

    export function Copy() {
        const [copySuccess, setCopySuccess] = useState("")
        const textAreaRef = useRef(null)
    
        async function copyToClip() {
            await navigator.clipboard.writeText(location.href);
            setCopySuccess("Copied");
        }
    
        return (
            <>
                <Text onClick={copyToClip}>
                    Copy
                </Text>
            </>
        )
    }
    

    关于reactjs - 使用 ReactJS 将事件浏览器的 url 复制到剪贴板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65930199/

    相关文章:

    javascript - React.js 如何在路由文件中注册多个路由

    javascript - React Native/Redux - setState - 在现有状态转换期间无法更新

    javascript - React + MobX,用户认证,渲染错误

    javascript - 将状态值作为 props 传递给另一个组件 es6

    javascript - React - 使用数组 react axios

    javascript - ReactJS:调用 setLoading 时状态没有改变

    javascript - 是否可以使用 React 中的 useState() 钩子(Hook)在组件之间共享状态?

    javascript - 如何动态更改背景?

    javascript - 匹配没有 __magic__ 文件夹的路径

    javascript - 单击reactjs表行中的 'Edit'按钮时如何保存我的用户数据