Я получил веб-страницу с некоторыми элементами HTML, включая текстовую область и встроенный contenteditable iframe (rte).
С помощью этого кода мне удается отследить событие draggesture на главной странице и установить текст / html-data
jQuery(document).bind('draggesture', function(event){
event.originalEvent.dataTransfer.setData('text/html', 'my_data');
});
Теперь, когда вы добавляете текстовую область на главной странице, my_data удаляется.
Отбрасывание в приемлемом iframe также удаляет my_data.
Но у меня есть три вопроса, которые я не понимаю:
1. Работает привязка такого рода обработчика к документу iframes. Я устанавливаю данные о событиях аналогично приведенному выше коду, но он не работает. Когда я перетаскиваю его в iframe или в текстовую область на главной странице, my_data не вставляется, а выбирает исходное содержимое. Что я могу сделать, чтобы установить my_data?
2. Я пытался изменить / установить данные, используя событие drop в iframe и на главной странице:
jQuery(ed.getDoc()).bind('drop', function(event){
event.originalEvent.dataTransfer.setData('text/html', 'my_data');
});
Но я получаю ошибку javascript в обоих документах (на главной странице и в iframe): «Для этого документа не разрешены изменения».
Почему я получаю эту ошибку? Есть ли обходной путь для этого?
Похоже, у pimvdb есть объяснение этому.
3. При выборе <p>some text</p><hr><p>some text</p>
на главной странице и перетаскивании его в contenteditable iframe ничего не вставляется, когда я устанавливаю 'my_data' (на Draggesture), используя первый пример кода сверху. Перетаскивание в текстовую область работает. Кто-нибудь знает, что здесь не так? (проблема не возникает при использовании Chrome!)
РЕДАКТИРОВАТЬ: Вот демоверсия jsFiddle, чтобы поиграть и понять проблему:
http://jsfiddle.net/R2rHn/5/