2013-01-10 37 views
3

我正在做的是以編程方式從網頁選擇所有文本,然後複製它。選擇全部與execCommand一起使用,但複製不。document.exec命令複製命令不起作用或其他解決方案?

這裏是我的代碼:

$.ajax({ 
    url: $('#url').val(), 
    type: 'GET', 
    success: function(res) { 
     $('#result').html(res.responseText); 
     $('#result').fadeIn('fast'); 


     $('#result').focus(); 
     $('#result').select(); 

     document.execCommand('selectall'); 

     // copy does not work ? 
     document.execCommand('copy'); 

    } 
}); 

Here is Example on JsBin

我也嘗試過使用閃光燈解決方案如ZeroClipboard,但似乎人們必須按他們的Flash對象/按鈕明確到複製文本,而我想做zeroclip.setText('whatever');沒有用戶按按鈕。

任何人都可以告訴如何以編程方式複製文本?

+0

也許,你可以做一些我在這裏提到的: [已解決:文檔execCommand複製不與AJAX工作](http://stackoverflow.com/questions/43380921/not-able-to-copy-a-link - 直接當我使用ajax/43381458#43381458) –

回答

4

複製命令用於在所有瀏覽器中保護,但IE(它不適用於其他瀏覽器)。請求用戶使用Ctrl + C是一個常用的解決方法。

從Firefox 41(2015年9月),Chrome 42(2015年4月)和Opera 29(2015年4月)開始,複製命令應該在大多數主流瀏覽器默認情況下可用,用戶觸發)事件,例如響應按鈕點擊而觸發的事件。

來自MDN的compatibility table, 和W3C bug提供了進一步的信息。

+4

是的,但我不想自己按Ctrl + C,尋找解決方案來編程 – Dev01

+1

沒有提升權限是不可能的正如在這個回答中提到的'execCommand'),因爲允許任意剪貼板注入被視爲安全漏洞(「剪貼板中毒」)。我正在與瀏覽器供應商合作,至少在現代常青瀏覽器中啓用「點擊複製」功能,以便我們最終退出ZeroClipboard(或將其用作舊版瀏覽器的polyfill)。 –

+0

@ JamesM.Greene,您能鏈接到您向瀏覽器供應商提交的任何錯誤嗎? –