Use e.clipboardData.getData to get the pasted data if available. Increases speed if pasting a lot of lines
This commit is contained in:
parent
f89ed9a319
commit
6db9e31ab6
1 changed files with 15 additions and 3 deletions
|
|
@ -54,9 +54,9 @@ var TextInput = function(parentNode, host) {
|
|||
var inCompostion = false;
|
||||
var copied = false;
|
||||
|
||||
function sendText() {
|
||||
function sendText(valueToSend) {
|
||||
if (!copied) {
|
||||
var value = text.value;
|
||||
var value = valueToSend || text.value;
|
||||
if (value) {
|
||||
if (value.charCodeAt(value.length-1) == PLACEHOLDER.charCodeAt(0)) {
|
||||
value = value.slice(0, -1);
|
||||
|
|
@ -116,7 +116,19 @@ var TextInput = function(parentNode, host) {
|
|||
|
||||
event.addListener(text, "keypress", onTextInput);
|
||||
event.addListener(text, "textInput", onTextInput);
|
||||
event.addListener(text, "paste", onTextInput);
|
||||
event.addListener(text, "paste", function(e) {
|
||||
// Some browsers support the event.clipboardData API. Use this to get
|
||||
// the pasted content which increases speed if pasting a lot of lines.
|
||||
if (e.clipboardData && e.clipboardData.getData) {
|
||||
sendText(e.clipboardData.getData("text/plain"));
|
||||
e.preventDefault();
|
||||
} else
|
||||
// If a browser doesn't support any of the things above, use the regular
|
||||
// method to detect the pasted input.
|
||||
{
|
||||
onTextInput();
|
||||
}
|
||||
});
|
||||
event.addListener(text, "propertychange", onTextInput);
|
||||
|
||||
event.addListener(text, "copy", onCopy);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue