Добавление события onpaste в dijit / Editor - PullRequest
0 голосов
/ 29 мая 2018

У меня есть приложение, которое содержит большое количество цифр / редакторов, созданных декларативно.Мне нужно добавить событие onpaste в эти редакторы, чтобы преобразовать вставленный контент в обычный текст перед вставкой.У меня проблемы с получением события для запуска.Я попытался прикрепить событие как компонент data-dojo-props и как отдельный атрибут data-dojo-attach-event.Ни один, кажется, не работает.

Вот пример одного из полей:

<div  data-dojo-type="dijit/Editor" id="Editor1" name="Editor1Content"  
data-dojo-props="extraPlugins:
['createLink','unlink','fontSize','foreColor','hiliteColor'], 
onChange:function(){MarkDocAsChanged();}" data-dojo-attach-
event="onPaste:function(){pasteAsPlainText(event);}" >This is the current 
field content</div>

Может кто-нибудь указать мне правильное направление?

Ответы [ 2 ]

0 голосов
/ 10 июня 2018
// try to registe the paste event with "dojo/on" on the domNode
on(target, "paste", function(event){
              var textClipboard = "";
              if (typeof event.clipboardData !== "undefined") {// on Chrome & FF
                  textClipboard = event.clipboardData.getData("text/plain");
              } else if (typeof clipboardData !== "undefined") { // IE
                  textClipboard = clipboardData.getData("text");
              }
// use document.execCommand("insertText", false, text) or
// document.execCommand("paste", false, text) in IE to paste content
          });
0 голосов
/ 05 июня 2018

Глядя на документ dijit / Editor, похоже, что он не поддерживает событие onPaste.Вы можете попробовать подключить слушатель onpaste к widget.domNode, перехватить событие и преобразовать значение там, а затем установить его как widget.value.

...