dojo 向dijit/Editor添加onpaste事件

qrjkbowd  于 2022-12-16  发布在  Dojo
关注(0)|答案(2)|浏览(189)

我有一个应用程序,其中包含大量以声明方式创建的digit/Editors。我需要向这些编辑器添加一个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>

谁能给我指一下正确的方向?

t5fffqht

t5fffqht1#

查看dijit/Editor文档,它似乎不支持onPaste事件,您可以尝试将onPaste侦听器附加到widget.domNode,拦截该事件,并在那里转换值,然后将其设置为widget. value。

ujv3wf0j

ujv3wf0j2#

// 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
          });

相关问题