2017-08-24 115 views
0

我正在使用document.execCommand(“复制”)函数从JavaScript代码复制一段文本。它适用于Firefox,Chrome和IE。但它不适用于Safari。我已经研究了很多,以解决这个问题,但没有得到任何东西。复制到剪贴板中JS

+0

是的,我知道这是不是在Safari支持。那么我如何在safari中执行复制到剪贴板功能呢? – Kritika

+0

@Kritika不幸的是,你不能,没有浏览器的支持。唯一的另一种方式是基于闪存,这也不会因为浏览器阻止闪存运行而起作用。支持[剪贴板API](http://caniuse.com/#search=clipboard)也不好。 – abhishekkannojia

+0

有没有什么插件可以实现这个? – Kritika

回答

0

我搜索了一些解决方案,我发现一个实际工作:http://www.seabreezecomputers.com/tips/copy2clipboard.htm

基本上,例如可以是这样的:

var $input = $(' some input/textarea '); 
$input.val(result); 
if (navigator.userAgent.match(/ipad|ipod|iphone/i)) { 
    var el = $input.get(0); 
    var editable = el.contentEditable; 
    var readOnly = el.readOnly; 
    el.contentEditable = true; 
    el.readOnly = false; 
    var range = document.createRange(); 
    range.selectNodeContents(el); 
    var sel = window.getSelection(); 
    sel.removeAllRanges(); 
    sel.addRange(range); 
    el.setSelectionRange(0, 999999); 
    el.contentEditable = editable; 
    el.readOnly = readOnly; 
} else { 
    $input.select(); 
} 
document.execCommand('copy'); 
$input.blur(); 
+0

我试过上述的解决方案,它不适用于safari。 – Kritika

+0

看看这个链接,如果它可以帮助你https://clipboardjs.com/ –