如何修改粘贴的数据? jQuery

2023-11-26

我关注了这个问题JavaScript 在粘贴事件上获取剪贴板数据(跨浏览器)从剪贴板获取粘贴的数据,但我使用了jquery。现在我得到了数据,我删除了所有 html 标签。但我不知道怎么粘贴。element is a contenteditable div

element.on('paste', function (e) {
  var clipboardData, pastedData;
  e.preventDefault();
  // Get pasted data via clipboard API
  clipboardData = e.clipboardData || window.clipboardData || e.originalEvent.clipboardData;
  pastedData = clipboardData.getData('Text').replace(/<[^>]*>/g, "");
  // How to paste pasteddata now?
  console.log(pastedData);
});

我找到了答案,我将分享它。为了清理剪贴板中的 html 标签,您应该粘贴以下内容:

             element.on('paste', function (e) {
                    e.preventDefault();
                    var text;
                    var clp = (e.originalEvent || e).clipboardData;
                    if (clp === undefined || clp === null) {
                        text = window.clipboardData.getData("text") || "";
                        if (text !== "") {
                            text = text.replace(/<[^>]*>/g, "");
                            if (window.getSelection) {
                                var newNode = document.createElement("span");
                                newNode.innerHTML = text;
                                window.getSelection().getRangeAt(0).insertNode(newNode);
                            } else {
                                document.selection.createRange().pasteHTML(text);
                            }
                        }
                    } else {
                        text = clp.getData('text/plain') || "";
                        if (text !== "") {
                            text = text.replace(/<[^>]*>/g, "");
                            document.execCommand('insertText', false, text);
                        }
                    }
                });

Credit: l2aelba

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何修改粘贴的数据? jQuery 的相关文章