123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- /**
- * 纯文本粘贴插件
- * @file
- * @since 1.2.6.1
- */
- UE.plugins["pasteplain"] = function() {
- var me = this;
- me.setOpt({
- pasteplain: false,
- filterTxtRules: (function() {
- function transP(node) {
- node.tagName = "p";
- node.setStyle();
- }
- function removeNode(node) {
- node.parentNode.removeChild(node, true);
- }
- return {
- //直接删除及其字节点内容
- "-": "script style object iframe embed input select",
- p: { $: {} },
- br: { $: {} },
- div: function(node) {
- var tmpNode,
- p = UE.uNode.createElement("p");
- while ((tmpNode = node.firstChild())) {
- if (tmpNode.type == "text" || !UE.dom.dtd.$block[tmpNode.tagName]) {
- p.appendChild(tmpNode);
- } else {
- if (p.firstChild()) {
- node.parentNode.insertBefore(p, node);
- p = UE.uNode.createElement("p");
- } else {
- node.parentNode.insertBefore(tmpNode, node);
- }
- }
- }
- if (p.firstChild()) {
- node.parentNode.insertBefore(p, node);
- }
- node.parentNode.removeChild(node);
- },
- ol: removeNode,
- ul: removeNode,
- dl: removeNode,
- dt: removeNode,
- dd: removeNode,
- li: removeNode,
- caption: transP,
- th: transP,
- tr: transP,
- h1: transP,
- h2: transP,
- h3: transP,
- h4: transP,
- h5: transP,
- h6: transP,
- td: function(node) {
- //没有内容的td直接删掉
- var txt = !!node.innerText();
- if (txt) {
- node.parentNode.insertAfter(
- UE.uNode.createText(" "),
- node
- );
- }
- node.parentNode.removeChild(node, node.innerText());
- }
- };
- })()
- });
- //暂时这里支持一下老版本的属性
- var pasteplain = me.options.pasteplain;
- /**
- * 启用或取消纯文本粘贴模式
- * @command pasteplain
- * @method execCommand
- * @param { String } cmd 命令字符串
- * @example
- * ```javascript
- * editor.queryCommandState( 'pasteplain' );
- * ```
- */
- /**
- * 查询当前是否处于纯文本粘贴模式
- * @command pasteplain
- * @method queryCommandState
- * @param { String } cmd 命令字符串
- * @return { int } 如果处于纯文本模式,返回1,否则,返回0
- * @example
- * ```javascript
- * editor.queryCommandState( 'pasteplain' );
- * ```
- */
- me.commands["pasteplain"] = {
- queryCommandState: function() {
- return pasteplain ? 1 : 0;
- },
- execCommand: function() {
- pasteplain = !pasteplain | 0;
- },
- notNeedUndo: 1
- };
- };
|