Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > firefox и paste в iframe


Автор: Frozen_Coyote 21.2.2011, 23:11
Здравствуйте,

такой нюанс:

Код


var iframe = document.getElementById(iframe_id);
var iframeDocument = iframe.contentDocument || iframe.contentWindow;

iframeDocument.addEventListener('paste', function(e)
{
alert(document.getElementById(iframe_id).contentDocument.getElementsByTagName("body")[0].innerHTML);
return false;
},true );




Даный код делает следующее: я нажимаю ctrl + v -> алерт отображает текущий контент iframe -> вставляется мой текст из буфера

что мне нужно: мне нужно получить (ну пусть в алерт, не суть) текст из iframe, который получился ПОСЛЕ появления моей вставки. Иными словами - нажимаю ctrl + v -> вставляется текст -> появляется алерт с обновленным  контентом iframe. Ну какой то типа afterpaste что ли - помогите плиз

спасибо!

Автор: Amphiluke 22.2.2011, 19:43
Поставьте в обработчике небольшой таймаут на выполнение операции считывания содержимого фрейма.
Код

iframeDocument.addEventListener('paste', function(e) {
    setTimeout(function() { alert(iframeDocument.getElementsByTagName("body")[0].innerHTML) }, 10);
}, true);

Автор: Frozen_Coyote 22.2.2011, 20:35
Спасибо за ответ, задержка - это некрасиво smile по другому сделал. в любом случае - благодарю

Автор: Amphiluke 22.2.2011, 20:41
Цитата(Frozen_Coyote @  22.2.2011,  23:35 Найти цитируемый пост)
по другому сделал

Напишите, плиз, как.

Автор: Frozen_Coyote 23.2.2011, 09:24
Цитата(Amphiluke @  22.2.2011,  20:41 Найти цитируемый пост)
Напишите, плиз, как. 


Я не стал перехватывать событие "Paste" - я стал перехватывать keyup.  И лис спокойно дожидается изменения контента в iframe а по отпусканию клавиши реагирует

Код

iframeDocument.addEventListener('keyup', function(e)
{
var cc = (e.which) ? e.which : event.keyCode;
if(e.ctrlKey && e.keyCode == "86")
{
fnPaste(e, iframe_id);
}
},true );



Автор: Amphiluke 23.2.2011, 09:43
К сожалению, это не сработает при вставке через контекстное меню. smile

Автор: Frozen_Coyote 23.2.2011, 10:12
Цитата(Amphiluke @  23.2.2011,  09:43 Найти цитируемый пост)
 сожалению, это не сработает при вставке через контекстное меню.


ну понятное дело, слушальщик то пасет нажатие клавиши. Я знаю есть событие на появление контекстного меню, потом покопаю в ту сторону - мне то нужно было именно для клавиш

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)