我有一个包含大量以声明方式创建的数字/编辑器的应用程序。我需要向这些编辑器添加一个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>
有人能指出我正确的方向吗?
答案 0 :(得分:0)
查看dijit / Editor doc,它似乎不支持onPaste事件。您可以尝试将onpaste侦听器附加到widget.domNode,拦截事件,然后将值转换为widget.value。
答案 1 :(得分:0)
// 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
});