2015-09-28 185 views
8

如果我有一個分配有onPaste事件的Reactjs輸入文本元素,我怎樣才能得到響應中的粘貼值?如何從Reactjs onPaste事件獲取粘貼值

此刻我在控制檯中得到的是一個SyntheticClipboardEvent,其所有屬性都爲null。我讀過console.log是一個異步檢查器,這就是爲什麼大多數值都是空的,因爲他們展望未來。

但是我想知道如何獲得價值。

乾杯

回答

16
onPaste: function(e) { 
    console.log(e.clipboardData.getData('Text')); 
}, 
+0

時,我用這個,它給了我一個以上的值從剪貼板 – PositiveGuy

0

的數據可以在clipboardData中找到,和解析以串如下:

event.clipboardData.items[0].getAsString(text=>{ 
    // do something 
}) 
2

第一包括Facebook的數據傳遞模塊:

var DataTransfer = require('fbjs/lib/DataTransfer'); 

然後就可以做:

onPaste: function (evt) { 
     var data = new DataTransfer(evt.clipboardData); 

     var text = data.getText(); 
     var html = data.getHTML(); 
     var files = data.getFiles(); 
}, 

你歡迎)

2

https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/types

的格式爲Unicode字符串給出的數據的類型或格式, 通常由MIME類型給出。某些非MIME類型 的值是由於傳統原因(例如「文本」)而特殊設置的。

例如:

onPaste: function(e) { 
    console.log(e.clipboardData.getData('Text')); 
    console.log(e.clipboardData.getData('text/plain')); 
    console.log(e.clipboardData.getData('text/html')); 
    console.log(e.clipboardData.getData('text/rtf')); 

    console.log(e.clipboardData.getData('Url')); 
    console.log(e.clipboardData.getData('text/uri-list')); 
    console.log(e.clipboardData.getData('text/x-moz-url')); 
}