2017-08-24 111 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/ –