2011-06-20 136 views
36

我想知道一種方法,使我的腳本檢測到剪貼板的內容,並在打開頁面時將其粘貼到文本字段中,而無需用戶輸入。如何做呢?獲取當前剪貼板內容?

+0

可能重複(http://stackoverflow.com/questions/233719/is-it-possible-to-read-在剪貼板在火狐Safari瀏覽器和鉻使用javascri) –

+0

請閱讀這裏:http://stackoverflow.com/questions/233719/is-it-possible-to-read-the-clipboard-in -firefox-safari-and-chrome-using-javascri http://stackoverflow.com/questions/127040/copy-put-text-on-the-clipboard-with-firefox-safari-and-chrome – rmflow

回答

9

除非在複製文本時使用某種類型的閃存後端,否則無法真正瞭解用戶剪貼板中的內容。


更新:A more correct answer here

44

window.clipboardData.getData('Text')會在某些瀏覽器。但是,許多瀏覽器在其工作時會提示用戶他們是否希望網頁訪問剪貼板。

+8

這項工作將在除Internet Explorer之外的任何瀏覽器? –

+4

可能不是。看到這個問題:http://stackoverflow.com/questions/400212/how-to-copy-to-the-clipboard-in-javascript – Dave

+2

你可以在這裏檢查兼容性http://caniuse.com/#search=clipboardData –

10

您可以使用

window.clipboardData.getData('Text') 

讓用戶在IE剪貼板中的內容。但是,在其他瀏覽器中,您可能需要使用Flash來獲取內容,因爲沒有用於訪問剪貼板的標準界面。可能是你可以試試這個插件Zero Clipboard

+0

鏈接工作正常(再次) – stephanos

+3

ZeroClipboard只允許您將*複製到剪貼板,不讀*從*它。 – DSimon

2

以下將給你選定的內容以及更新剪貼板。

使用複製事件綁定元素標識,然後獲取選定的文本。您可以替換或修改文字。獲取剪貼板並設置新文本。要獲得確切的格式,您需要將類型設置爲「text/hmtl」。您也可以將其綁定到文檔而不是元素。

 $(ElementId).bind('copy', function(event) { 
     var selectedText = window.getSelection().toString(); 
     selectedText = selectedText.replace(/\u200B/g, ""); 

     clipboardData = event.clipboardData || window.clipboardData || event.originalEvent.clipboardData; 
     clipboardData.setData('text/html', selectedText); 

     event.preventDefault(); 
     }); 
的[是否可以讀取使用JavaScript在Firefox,Safari和Chrome剪貼板?]
+5

歡迎來到本網站!我很高興你能回答一個問題。但請注意,你的回答並不真正回答OP的問題。問題是*從剪貼板中檢索*內容並在打開頁面時將其粘貼到某處。另外,由於該問題沒有[tag:jquery]標籤,因此jQuery的答案應該包含使用庫(jQuery)的註釋。 – KarelG