将onpaste事件添加到dijit / Editor

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将onpaste事件添加到dijit / Editor相关的知识,希望对你有一定的参考价值。

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

谁能指出我正确的方向?

答案

看看dijit / Editor doc,它似乎没有对onPaste事件的支持。您可以尝试将onpaste侦听器附加到widget.domNode,拦截事件,并将值转换为该值,然后将其设置为widget.value。

另一答案
// 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
          });

以上是关于将onpaste事件添加到dijit / Editor的主要内容,如果未能解决你的问题,请参考以下文章

dojo.dijit.Button 触发 onclick 事件两次

Dojo dijit.layout.TabContainer - 如何将类添加到选项卡?

Dojo:无法停止“onClick”dijit 事件

使用“之前”选项将项目添加到道场商店

Dijit 复选框树事件委托

以编程方式在dijit布局TitlePane中插入dijit内容窗格