Проблема с обновлением события jQuery Paste - PullRequest
2 голосов
/ 02 августа 2011

У меня проблема с привязкой события вставки к вводу текста в jQuery.Событие вызывается, когда пользователь вставляет, но в обратном вызове $(this).val(); возвращает старое значение, а не новое, которое было вставлено. Мне удалось взломать его в Chrome, но не в Firefox.

ФункциональностьЯ собираюсь сделать это так, как будто вы вставляете URL-адрес в поле состояния Facebook, и он мгновенно генерирует предварительный просмотр этого URL.

Я считаю, что проблема заключается в том, что обратный вызов события вставки вызывается до значениятекстовое поле обновлено.Но я могу ошибаться, поэтому, если у кого-то есть понимание того, почему это происходит, я весь слух.

Я сделал JSFiddle, чтобы проиллюстрировать проблему здесь: http://jsfiddle.net/ybqPp/1/

Любая помощь приветствуется.Спасибо!

Ответы [ 2 ]

1 голос
/ 02 августа 2011

Это потому, что в вашей скрипке вы получаете значение текстового поля, с которым связано событие onpaste.

ИМХО, прямого пути нет, и вам, возможно, также не понравится хак.Так что намного лучше забыть об этом:)

Примечания MDN по element.onpaste,

В настоящее время не существует способа получения текста только для DOMбыть вставленным;вам нужно будет использовать nsIClipboard , чтобы получить эту информацию.

Проверьте это: JavaScript получает данные буфера обмена при вставке (кросс-браузер)

0 голосов
/ 02 августа 2011

Firefox ограничивает ваш доступ к clipboardData, что означает, что в отличие от Webkit (Chromium) или IE, в Firefox вы не можете использовать window.clipboardData.getData ("text") или event.clipboardData.getData ("text").

Также обратите внимание, что в IE9 (в зависимости от настроек безопасности) пользователи получат панель разрешений, сообщающую, что ваш веб-сайт пытается получить доступ к буферу обмена.

Я знаю, что это умственно отсталый, вот слово изо рта лошади - http://support.mozilla.com/en-US/kb/Granting%20JavaScript%20access%20to%20the%20clipboard

...