Перехватить событие вставки внутри переменной в jquery

1 ответ

Проблема в том, что getAsString() является асинхронным, поэтому вы пытаетесь прочитать c до того, как значение было установлено.

Чтобы исправить это, извлеките логику, зависящую от c, в ее собственную функцию и вызовите эту функцию в обратном вызове getAsString():

$('body').on('paste', function(e) {
  var c = "";
  var dt = e.originalEvent.clipboardData;

  if (dt && dt.items && dt.items[0]) {
    dt.items[0].getAsString(function(text) {
      $('.log').text(text);
      doStuff(text);
    });
  } else {
    if (dt && ('getData' in dt)) {
      $('.log').text(dt.getData('text'));
      doStuff(dt.getData('text'));
    }
  }
});

function doStuff(foo) {
  console.log('You pasted', foo);
}
[ 111]

0
ответ дан Rory McCrossan 16 January 2019 в 13:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: