Firefox 的 execCommand 复制异步替代方案

2024-01-19

document.execCommand('copy')可以在 Promise 的解析函数中使用(Firefox 除外)。 Chrome、Opera 甚至 Safari 等所有现代浏览器都允许最多 1 秒的异步复制。

我想改善用户体验并在剪贴板中计算后复制数据。

有没有一种解决方案可以用 Firefox 一键复制 Promise 的结果?

这是使用 Chrome 的代码片段

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Test</title>
</head>
<body>
<button onclick="copy(genPwd)">copy</button>
<script>
    function genPwd() {
        return new Promise(function(resolve) {
            resolve('toto')
        })
    }
    function copy(p) {
        p().then(function(result) {
            console.log('create fake text area');
            var fakeTextArea = document.createElement('textarea');
            fakeTextArea.setAttribute('readonly', '');
            fakeTextArea.value = result;
            document.body.appendChild(fakeTextArea);
            fakeTextArea.select();
            document.execCommand('copy');
        });
    }
</script>
</body>
</html>

None

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Firefox 的 execCommand 复制异步替代方案 的相关文章

  • Backbone.Marionette 与 Backbone-Boilerplate

    我是 Backbone 的新手 正在尝试决定如何进行开发 目前我想知道人们什么时候会使用backbone marionette而不是backbone boilerplate 据我所知 Marionette 的规范性更强 但这是大多数人进行开
  • React Native - “this.setState 不是一个函数”试图设置背景颜色动画?

    好吧 我只是想循环视图的背景颜色 在 3 4 种颜色之间渐变 我发现如何在 React Native 中对 ScrollView 的背景颜色进行动画处理 https stackoverflow com questions 50356933
  • getScript 本地加载而不是全局加载?

    根据我的阅读 JQuery 的 getScript 函数使用名为 global eval 的函数在全局上下文中加载脚本文件 是否有特定的设置或方法可以更改此设置 以便它将改为在我调用它的函数中加载 如果我执行以下代码名称 则返回未定义 因为
  • Javascript 中的无限原型继承

    我正在学习 Javascript 中的原型继承 根据我的理解 我尝试使用它来将进程发送到无限递归链接中 我对原型继承的想法是一个对象 它是一个函数 保存原型链接 该对象的任何实例都指向它 因此 如果我说instance someproper
  • 为什么这个对象的“forEach 不是函数”?

    这可能真的很愚蠢 但我不明白为什么这不起作用 var a cat large a forEach function value key map console log value 未捕获的类型错误 a forEach 不是函数 http j
  • Web SQL 将数据插入多行

    我尝试在 Web SQL 数据库中一次将变量插入多行 但使用我所知的所有方法时 我收到错误 INSERT INTO tab a b VALUES v1 v2 v3 v4 gt gt could not prepare statement 1
  • ReactJS 中的组件之一出现“必须返回有效的 React 元素(或 null)”错误

    我的代码是这样的 var data id 1 taskName Pete Hunt standarDescription This is one comment emplComment meaaow I am meeawo empRatin
  • 大型 AngularJS 应用程序设计

    我需要关于设计具有多个复杂模块的 AngularJS 应用程序的建议 并根据用户角色在身份验证和授权后加载模块 有些用户可以访问一个简单的模块 有些用户可以访问仪表板 有些用户可以访问 2 个以上的模块 我们已经确定了许多可以在不同模块中重
  • 在 AMP 中包含自定义 JavaScript 的最佳方式

    我阅读了有关脚本标记的所有文档 但找不到如何在 AMP HTML 中包含自定义 JavaScript 我知道
  • RegEx 使用 match() 在 JavaScript 中提取字符串数组

    我正在尝试使用string match 在 javascript 中使用正则表达式来提取字符串数组 这是一个示例字符串 CREATE TABLE listings listing id INTEGER UNIQUE state TEXT t
  • JS 中的 .Jar 文件

    有谁知道如何在 JS 中访问 jar 文件 我已经用 Java 创建了类并作为 jar 文件导入 我想从 JS 文件访问该类 大家好 我感谢你们所有人 我尝试在 Firefox XUL 中使用 JS 列出文件夹中的文件 但我做不到 然后我决
  • Mocha 测试对原生 ES6 模块的“esm”支持

    有一个很棒的帖子 使用 Mocha 和 esm 测试原生 ES 模块 https web archive org web 20220318155753 https alxgbsn co uk 2019 02 22 testing nativ
  • HttpRequest 和 XMLHttpRequest 之间的真正区别

    阅读前注意事项 这不是重复的xmlhttprequest 和 httprequest 之间的区别是什么 https stackoverflow com questions 8499062 what are differences betwe
  • 为什么 useState 会导致组件在每次更新时渲染两次?

    我这里有一段简单的代码 import React useState from react import styles css export default function App const number setNumber useSta
  • 启动 Firefox 并等待其关闭

    Question 我想启动 Firefox 网络浏览器作为访问特定网站的过程 然后等到它关闭 一种特殊情况是浏览器可能已经打开并正在运行 因为用户可能已经访问过某个网站 在这种情况下 浏览器可能会在现有窗口中打开一个新选项卡 并且新启动的进
  • 包括来自raw.github.com的js

    我有一个 github com 演示页面 链接到https raw github com master file js https raw github com master file js这样我就不需要总是复制 js文件转移到gh pag
  • Dojo require,模块加载失败时连接错误

    当我尝试加载不存在的模块时 它失败并出现 404 错误 当然 我想处理此错误 但不知道如何连接到 错误 事件 根据 Dojo 文档 我应该能够使用它的微事件 API http livedocs dojotoolkit org loader
  • RegisterClientScriptCode 在部分回发后不起作用

    以下代码行位于 SharePoint 网站的用户控件中 ScriptManager RegisterClientScriptBlock this this GetType jquery144 false ScriptManager Regi
  • JavaScript TypedArray 混合类型

    我正在尝试使用 WebGL 并希望将一些不同类型混合到一个字节缓冲区中 我知道 TypedArrays 可以达到这个目的 但不清楚我是否可以与它们混合类型 OpenGL 顶点数据通常是与无符号字节或整数混合的浮点数 在我的测试中 我想将 2
  • 如何自动加载 Webpack 中给定目录中的所有 JSON 文件? [复制]

    这个问题在这里已经有答案了 编辑 有一个现有的问题 https stackoverflow com questions 29421409 how to load all files in a subdirectories using web

随机推荐