Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Chrome, AddEventListener и onPaste, помогите разобраться 
:(
    Опции темы
Frozen_Coyote
Дата 8.8.2011, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 20.9.2007

Репутация: нет
Всего: нет



Добрый день, 

тут случилась следующая неурядица у меня: понадобилось мне перехватывать вставку некого контента в iframe. IE обладает возможностью обработки собтия onPaste через AddEventListener и поэтому с ним никаких проблем не возникло. Но вот Хром в данном случае выссказал полное непонимание, чего от него хотят, в следствие чего я решил сотворить небольшое эмулирование процесса

Код

iframeDocument.addEventListener('keyup', function(e)
{
var cc = (e.which) ? e.which : event.keyCode;
// если нажата комбинация CTRL + V - стартует функция, которая что то там делает, неважно
if(e.keyCode == "86" && e.ctrlKey)
{
fnPaste(e, iframe_id);
}
}, true );


непорядок заключается в том что если при нажатии вышеозначенной комбинации пользователь отпускает ВНАЧАЛЕ клавишу V а затем CTRL - все работает так как я и планировал. Но вот если пользователь вначале отпускает клавишу CTRL а затем уж V - запуск функции не происходит.

вопрос прост: как бы мне обмануть Хром в этом плане или как еще надежно сто процентов перехватить вставку контента в поле iframe 

большое спасибо

PM MAIL   Вверх
Amphiluke
Дата 8.8.2011, 19:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


Профиль
Группа: Завсегдатай
Сообщений: 1253
Регистрация: 26.8.2009

Репутация: 35
Всего: 112



Перехватывать нажатие Ctrl+V — ненадежный способ. А Shift+Ins? А вставка через контекстное меню?
Вообще-то странно, что у вас в хроме не отлавливается событие paste. У меня в Webkit всё работает безупречно.
Код

iframe = document.getElementById("iframe_id_here");
if (iframe.contentWindow) iframe = iframe.contentWindow;
idoc = iframe.document;
idoc.designMode = "on";
idoc.addEventListener("paste", function() { alert("Hello!"); }, false);

PM   Вверх
Frozen_Coyote
Дата 9.8.2011, 10:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 20.9.2007

Репутация: нет
Всего: нет



Нет, само событие по факту отрабатывает, НО у меня ИЕ при отбработке onpaste запускает функцию ПОСЛЕ вставки контента, а Хром - ДО. Но в лбом случае Вы правы - я пошел немного другим путем и убрал перхват клавиш, оствив обработчик кейдаун.. сейчас буду смотреть - все ли нормально вышло ))
Спасибо! 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0518 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.