javascript - 使用javascript将自定义json对象复制到剪贴板

标签 javascript android json html canvas

我正在使用 HTML5 + javascript 开发共享 Canvas 。我正在开发复制/粘贴功能,使用 Ctrl+C、+X、+V 没有问题,但我还想添加提供相同功能的典型按钮(主要是为了能够复制/粘贴到平板电脑中)。

管理标准事件的代码非常简单:

window.addEventListener("copy", copyFunc);

...

copyFunc(e){
  if (BDKanvasInstance.selection !== null){
    var data = BDKanvasInstance.selection.serialize();
    var jsonData = JSON.stringify(data);
    e.clipboardData.setData('application/json', jsonData);
    e.preventDefault();
  }
}

但我必须通过按钮访问剪贴板数据...

copyBtn.addEventListener("click", copyBtnFunc);

copyBtnFunc(e){
  /* Any way to access clipboardData or to trigger the standard copy command? */
}

我见过几种涉及创建文本区域、插入文本、以编程方式选择它并使用“execCommand('copy')”的解决方案,但这不会复制具有“application/json”类型的文本...

有什么解决办法吗?在电脑上使用键盘快捷键是可以的,但在平板电脑上使用时它们不是解决方案...

谢谢!

最佳答案

一切都在同一个页面上完成,所以我已经完成了:

window.addEventListener("copy", copyFunc);

...

copyFunc(e){
  if (BDKanvasInstance.selection !== null){
    var data = BDKanvasInstance.selection.serialize();
    if (e && e.clipboardData)
    {
      var jsonData = JSON.stringify(data);
      e.clipboardData.setData('application/json', jsonData);
      e.preventDefault();
    } else {
      internalClipboard = data;
    }
  }
}

copyBtn.addEventListener("click", copyBtnFunc);

copyBtnFunc(e){
  copyFunc(null);
}

和这三个 Action 类似(复制/剪切/粘贴)。这些按钮使用空参数从它们的处理程序调用函数。按钮有一个“剪贴板”,快捷方式有另一个“剪贴板”。肮脏,但可能会成功......

谢谢!

关于javascript - 使用javascript将自定义json对象复制到剪贴板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31999886/

相关文章:

javascript - Shiny 和 Javascript - 未捕获的 ReferenceError : TRUE is not defined

javascript - prototypejs - 使用类为按钮创建点击事件

android - 为什么我的 map v2 在我的设备上出现白屏?

android - 使用 Gif 图像

ios - "Type ' Alamofire 4.0 上的任何 ' has no subscript members"错误

php - 使用 Android PHP Web 服务从服务器获取数组

javascript - javascript中的JSON长度返回字符数而不是数组元素数

javascript - 在屏幕外隐藏按钮的最佳方式

Android TCP连接最佳实践

java - Android UTF-8编码引号