js 通过 navigator.clipboard.writeText(textToCopy) 实现复制,测试环境可以,正式环境不行的解决方案。

这篇具有很好参考价值的文章主要介绍了js 通过 navigator.clipboard.writeText(textToCopy) 实现复制,测试环境可以,正式环境不行的解决方案。。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题描述 :

代码:

navigator.clipboard
    .writeText('http://go.defino.cn/public?uuid='+data.uuid)
    .then(() => {
        layer.msg("复制成功");
    })
    .catch(() => {
        layer.msg("复制失败");
    })

测试环境下可以正常复制 ,但放到线上会报错:找不到 .writeText

百度分析:


在 Chrome 的 DevTools 控制台下执行 navigator.clipboard 返回 undefined,经查找资料发现是浏览器禁用了非安全域的 navigator.clipboard 对象,哪些地址是安全的呢?

安全域包括本地访问与开启TLS安全认证的地址,如 https 协议的地址、127.0.0.1 或 localhost 。

解决方案:文章来源地址https://www.toymoban.com/news/detail-542920.html

if (navigator.clipboard && window.isSecureContext) {
                    navigator.clipboard
                        .writeText('http://go.defino.cn/public?uuid='+data.uuid)
                        .then(() => {
                            layer.msg("复制成功");
                        })
                        .catch(() => {
                            layer.msg("复制失败");
                        })
                }else {
                    // 创建text area
                    const textArea = document.createElement('textarea')
                    textArea.value = 'http://go.defino.cn/public?uuid='+data.uuid
                    // 使text area不在viewport,同时设置不可见
                    document.body.appendChild(textArea)
                    textArea.focus()
                    textArea.select()
                    return new Promise((resolve, reject) => {
                        // 执行复制命令并移除文本框
                        document.execCommand('copy') ? resolve() : reject(new Error('出错了'))
                        textArea.remove()
                    }).then(
                        () => {
                            layer.msg("复制成功");
                        },
                        () => {
                            layer.msg("复制失败");
                        }
                    )

到了这里,关于js 通过 navigator.clipboard.writeText(textToCopy) 实现复制,测试环境可以,正式环境不行的解决方案。的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Vue3 复制 copy 功能实现(vue-clipboard3)

    安装 vue-clipboard3 ,附:vue2 复制 copy 功能实现 在 setup () {}  中使用: 在 script setup  中使用:

    2024年02月12日
    浏览(32)
  • 解决http下navigator.clipboard为undefined问题

    开发环境下使用navigator.clipboard进行复制操作,打包部署到服务器上后,发现该功能显示为undefined;查相关资料后,发现clipboard只有在安全域名下才可以访问(https、localhost),在http域名下只能得到undefined; 解决方案如下:

    2024年02月12日
    浏览(29)
  • 前端小工具Vue+ElementUI+Clipboard :快捷复制

    我们在日常经常会遇到这种功能(特别多见于C端): 手机上操作不变,想要粘贴个信息比较麻烦,就会出现【点一点复制】 查看敏感信息一般就直接提示【已成功复制粘贴板】 对于网页上一长串显示的文字或者输入的文字,全部选中很长又很麻烦,这时候就提供\\\"快捷复制\\\"的

    2024年02月06日
    浏览(26)
  • Android:单Activity多Fragment,Navigation实现Fragment跳转,Fragment之间通过ViewModel共享数据

    1、activity_main.xml 2、MainActivity FragmentA:包括SeekBar和一个按钮,点击button跳转到FragmentB FragmentB:SeekBar加一和减一操作的按钮,一个返回FragmentA的按钮,即经过加减操作以后,在FragmentA上显示加减的结果。 nav_graph.xml 1、fragment_home.xml 2、HomeFragment 1、fragment_detail.xml 2、DetailFragm

    2023年04月08日
    浏览(32)
  • JS复制粘贴功能实现

    本章记录如何通过js代码实现复制内容到剪切板,之后可以粘贴到需要的地方的功能。 分为两个部分内容: 前两个部分使用execCommand方法,该方法现在被弃用(ps:虽然也还可以用就行了), 且对于单行内容的复制需要结合input标签实现,多行内容的复制需要结合textarea标签实现。

    2024年02月12日
    浏览(31)
  • js实现文本复制到剪切板

    复制文本到剪切板可使用navigator.clipboard.writeText()方法,如需兼容ie等老版本浏览器可使用execCommand()方法。

    2024年02月13日
    浏览(20)
  • (简单成功)原生js实现点击复制文本

    目录 背景 核心代码 案例 我们开发中可能会有点击复制的功能,那么下面将讲述 select() 方法用于选择该元素中的文本。 document.execCommand(\\\'copy\\\') 执行浏览器复制命令

    2024年02月12日
    浏览(37)
  • JavaScript实现点击复制(JS访问剪贴板相关)

    一、具体代码 ​ 网页前端开发中有时会出现这样的场景:让用户点击某个按钮,然后就能直接复制对应的文本内容,让用户可以将文本内容粘贴到想要粘贴的地方,常用于分享功能模块中。如果想要实现这种效果就需要我们去访问用户的剪贴板,然后把想要复制的内容写入

    2024年02月11日
    浏览(33)
  • vue中js实现点击复制文本到剪贴板-三种方案

    因为在网上找了一些很杂乱 不适用 所以自己写一篇记录分享一下 vue中js实现点击复制文本到剪贴板-三种方案 效果: 首先,我们需要安装clipboard库,它是一个轻量级的JavaScript库,用于复制/粘贴文本到剪贴板。 命令行运行npm install clipboard --save进行安装。 使用该库实现代码如

    2024年02月14日
    浏览(28)
  • vue2 使用pdf.js 实现pdf预览,并可复制文本

            需求:pdf预览,并且可以选中pdf的内容进行复制。                 在ruoyi的vue前端项目中用到,参考了网上不少文章,因为大部分没给具体的pdf.js版本,导致运行过程中报各种api 错误,经过尝试以下版本可用,故记录一下:         安装依赖:         vue 页面

    2024年01月19日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包