在Safari中复制到剪贴板无法正常工作

3
以下是我的“复制到剪贴板”的代码,除了在Safari浏览器上无法工作之外,一切都正常...请帮忙解决。
<textarea id="mcq1" style="width:1px; height:1px; opacity:0; position:absolute;">
    <iframe src="http://s.rabblerapp.com/widget/widget.php?raw_uuid=de8c6880-9624-4b1d-8905-a3e2ab290660" style="width:100%;height:635px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" vspace="0" hspace="0"></iframe>
</textarea>

<button class="rb_mcqbtn btn" data-clipboard-action="copy" data-clipboard-target="#mcq1" onclick="show_area('copied');">Copy Embed Code</button>

我使用了以下JavaScript代码: https://zenorocha.github.io/clipboard.js

该代码用于......(需要更多上下文信息)。

嗨,如果我提供一个没有任何插件的代码来复制文本,你能用吗? - undefined
看起来Safari 10现在支持document.execCommand("copy"),因此clipboard.js现在应该可以在最新的Safari中使用。 - undefined
2个回答

4
我看了一下他们的网站...
请看这里:链接

该库依赖于Selection和execCommand API。以下浏览器支持第二个API。

图片在这里.....

虽然Safari目前(包括移动设备)不支持使用execCommand进行复制/剪切操作,但它会优雅地降级,因为Selection是受支持的。


1

我同意查看他们的文档并创建适合您的解决方案,但这是我想到的一个简单备选方案。它允许您不必使用第三方tipsy库。我只是切换目标文本。

    var CopytoClipboard = new Clipboard('.clipboard-copy');
    CopytoClipboard.on('success', function(e) {
      var $target = $(e.trigger);
      var oText = $target.html();
      $target.html("已复制!");
      setTimeout(function () {
        $target.html(oText);
      }, 800);
    });
    CopytoClipboard.on('error', function(e) {
      var $target = $(e.trigger);
       var oText = $target.html();
      $target.html("按 ⌘C 复制");
      setTimeout(function () {
        $target.html(oText);
      }, 3000);
    });


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接