【发布时间】:2021-01-14 17:50:03
【问题描述】:
我正在开发一个应用程序,我想为 svg 提供一个复制按钮,以便将其作为图像复制到剪贴板,可以粘贴到其他地方。
我尝试使用剪贴板 API,但它有很多安全限制,而且它似乎不适用于 http 并且仅适用于 png。
我还尝试了document.execCommand('copy'),方法是使用图像创建一个 div,但它仅适用于 MS Word,但不适用于松弛或堆栈溢出(不知道为什么)。
我想通过 Javascript 复制 chrome/firefox 的右键单击上下文菜单的 Copy Image 选项的行为。
有没有办法做到这一点?我对所有想法持开放态度。谢谢!
【问题讨论】:
-
如果有一些代码可以修改就好了。根据您的需要,您可以尝试使用 javascript 在
canvas中绘制svg,如下例所示:tutorialspoint.com/How-to-draw-an-SVG-file-on-an-HTML5-canvas -
我探索了一个用于编写画布的选项,但是如何将其作为图像复制到剪贴板?
-
对不起,我被关于右键的句子弄糊涂了。对于您的问题,我认为剪贴板 API 没有任何办法。
execCommand策略导出的不是图片,而是html代码。这就是为什么它适用于 Word,但不适用于图像处理器。您可以在 developer.mozilla.org/en-US/docs/Web/API/Clipboard/write 找到有用的示例,但有一些警告。怕是头疼,不便携。 -
谢谢@vqf。知道 chrome/firefox 是如何做到的吗?我怀疑他们可能使用的不是 JS 中提供的 API。任何见解或链接都会很棒。
-
您希望它复制/粘贴什么样的图像? SVG 图像?那么你拥有的标记就是 svg 图像。光栅图像?如果在哪个维度上光栅化,为什么?在哪个州? (请记住,svg 图像可以通过 SMIL 或 CSS 进行动画处理,甚至可以交互)
标签: javascript image svg clipboard copy-paste